spacy儲存和載入模型
儲存模型
儲存類別:Language,Doc,Vocab和StringStore等
儲存方法如下:
Method | Example |
---|---|
to_bytes | data = nlp.to_bytes() |
from_bytes | nlp.from_bytes(data) |
to_disk | nlp.to_disk("/path") |
from_disk | nlp.from_disk("/path") |
序列化pipeline
可以分別處理不同的pipelines所對應的的不同的模型;
# serialize
byte_data = nlp.to_bytes()
lang = nlp.meta["lang"]
pipeline = nlp.meta["pipeline"]
#deserialize
nlp = spacy.blank(lang)
for pipe_name in pipeline:
pipe = nlp.create_pipe(pipe_name)
nlp.add_pipe(pipe)
nlp.from_bytes(bytes_data)
載入模型的流程:
- 載入模型提供的meta.json中包含的關於lang和pipeline的資訊;
- 初始化語言類,創造並且新增pipeline的元件;
- 載入二進位制data;
序列化Doc
處理大量的資料時,可能需要在機器之間來回傳遞分析結果,因此可以使用Doc.to_array
或者使用DocBin
類;
import spacy
from spacy.tokens import DocBin
doc_bin = DocBin(attrs=['LEMMA', 'ENT_IOB', 'ENT_TYPE'], store_user_data=True)
nlp = spacy.load("en_core_web_sm")
for doc in nlp.pipe(texts):
doc_bin.add(doc)
bytes_data = doc_bin.to_bytes()
nlp = spacy.blank("en")
doc_bin = DocBin().from_bytes(bytes_data)
docs = list(doc_bin.get_docs(nlp.vocab))
使用Pickle
- Pickle載入單個
import Pickle
doc = nlp(text)
doc_data = pickle.dumps(doc)
- Pickle載入多個
import Pickle
doc1 = nlp(text1)
doc2 = nlp(text2)
doc_data = pickle.dumps([doc1,doc2])
載入、儲存、修改模型
載入新訓練
利用Language.to_disk()
:
nlp.to_disk('/path')
生成模型包
手動生成meta.json檔案:
{
"name": "example_model",
"lang": ,
"version":
....
}
利用命令列生成package:
$ python -m spacy package /path
這樣就可以生成一個模型包
搭建模型包
搭建python包的方法:
$ python setup.py sdist
這樣就可以建立一個.tar.gz
在目標路徑下/dist
,然後再通過pipe install
進行安裝:
$ pip install /path/...tar.gz
載入自定義的模型包
利用spacy.load()
來載入模型:
nlp = spacy.load("/path/model")
如果想載入二進位制資料,需要創造Language類並且呼叫from_disk
函式
nlp = spacy.blank("en").from_disk("/path/model")
相關文章
- tensorflow模型持久化儲存和載入模型持久化
- Pytorch | Tutorial-07 儲存和載入模型PyTorch模型
- Transformers 儲存並載入模型 | 八ORM模型
- 儲存載入模型model.save()模型
- 訓練模型的儲存與載入模型
- tf.keras: 儲存與載入模型Keras模型
- Tensorflow SavedModel模型的儲存與載入模型
- 在 Python 中儲存和載入機器學習模型Python機器學習模型
- Tensorflow模型的儲存與恢復載入模型
- Spacy之下載和使用
- [PyTorch 學習筆記] 7.1 模型儲存與載入PyTorch筆記模型
- pytorch-模型儲存與載入自己訓練的模型詳解PyTorch模型
- Pytorch模型檔案`*.pt`與`*.pth` 的儲存與載入PyTorch模型
- 全面解析Pytorch框架下模型儲存,載入以及凍結PyTorch框架模型
- TensorFlow模型儲存和提取方法模型
- 機器學習之儲存與載入.pickle模型檔案機器學習模型
- 【小白學PyTorch】19 TF2模型的儲存與載入PyTorchTF2模型
- PyTorch儲存模型斷點以及載入斷點繼續訓練PyTorch模型斷點
- opencv學習筆記(二)-- 載入、修改和儲存影像OpenCV筆記
- Spark SQL使用簡介(3)--載入和儲存資料SparkSQL
- 2.影像的載入與儲存
- spacy入門一
- 【C語言進階】通訊錄的儲存和載入C語言
- MySQL入門--儲存過程(PROCEDURE)和儲存函式(FUNCTION)MySql儲存過程儲存函式Function
- DAOS 分散式非同步物件儲存|儲存模型分散式非同步物件模型
- 7-03. 實現資料儲存和載入的邏輯
- Java 載入、操作和儲存WPS文字文件Java
- Python 黑帽程式設計 4.2 Sniffer 之資料本地儲存和載入Python程式設計
- 掌握Hive資料儲存模型Hive模型
- 資料中心儲存 TCO 模型模型
- 使用Spark載入資料到SQL Server列儲存表SparkSQLServer
- C++之OpenCV入門到提高002:載入、修改、儲存影像C++OpenCV
- Android-內部儲存和外部儲存Android
- 載入模型模型
- 【火爐煉AI】機器學習003-簡單線性迴歸器的建立,測試,模型儲存和載入AI機器學習模型
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- Gartner:浪潮儲存進入分散式儲存前三分散式
- Oracle 共享儲存掛載Oracle