`memoryview: a bytes-like object is required, not 'dict'` when loading spaCy model
ghominejad opened this issue · 2 comments
Description:
I'm encountering an issue when trying to load a spaCy model using the SpacyPOSTagger
or even with spacy.load
method. The error message I receive is:
memoryview: a bytes-like object is required, not 'dict'
Steps to Reproduce
-
Clone the repository from spacy_pos_tagger_parsbertpostagger using:
git clone --depth 1 https://huggingface.co/roshan-research/spacy_pos_tagger_parsbertpostagger
-
Install dependencies:
pip install --no-cache-dir scipy==1.11.4 spacy==3.6.0 srsly==2.4.5 Cython spacy-transformers==1.1.7 transformers==4.27.4 gensim hazm
-
Run the following test script:
import spacy from pathlib import Path def test_load_model(model_path): try: nlp = spacy.load(model_path) print("Model loaded successfully.") except Exception as e: print(f"Failed to load model: {e}") if __name__ == "__main__": model_path = "./models/spacy_pos_tagger_parsbertpostagger" # Adjust the path accordingly test_load_model(model_path)
Expected Behavior
The model should load successfully without any errors.
Actual Behavior
The following error is encountered:
memoryview: a bytes-like object is required, not 'dict'
Environment
- Python Version: 3.10
- Installed Packages:
- scipy==1.11.4
- spacy==3.6.0
- srsly==2.4.5
- Cython
- spacy-transformers==1.1.7
- transformers==4.27.4
- gensim
- hazm
Additional Information
The error seems to occur when the spacy.load
function is called. This suggests there might be an issue with the model files or the compatibility between the installed packages and the model.
Any guidance on resolving this issue would be greatly appreciated.
Hi Mr.Ghominejad.Sorry for being late.Im looking into it and try to find the problem.Thanks for feedback.
import spacy
from pathlib import Path
def test_load_model(model_path):
try:
nlp = spacy.load(model_path)
print("Model loaded successfully.")
except Exception as e:
print(f"Failed to load model: {e}")
if name == "main":
model_path = "spacy_pos_tagger_parsbertpostagger" # Adjust the path accordingly
test_load_model(model_path)
I run your code exactly and pass the spacy_pos_tagger_parsbertpostagger to spacy.load function.It work correct and printed me Model loaded successfully.I think your packages version are wrong.my spacy version is 3.6.0 same as you.My packages version listed below:
spacy==3.6.0
scipy==1.10.1
srsly==2.4.6
Cython==0.29.32
spacy-transformers==1.3.2
transformers==4.38.1
gensim==4.3.1
hazm
try to install these packages with version of mine.I hope your problem will be solved