# textcat.teach with custom model from spaCy

**URL:** <https://support.prodi.gy/t/textcat-teach-with-custom-model-from-spacy/2928>\
**Category:** Uncategorized\
**Tags:** textcat, spacy, solved\
**Created:** [May 19, 2020, 8:22pm UTC](https://support.prodi.gy/t/textcat-teach-with-custom-model-from-spacy/2928 "2020-05-19T20:22:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![HSM](https://avatars.discourse-cdn.com/v4/letter/h/ea666f/32.png) [@HSM](https://support.prodi.gy/u/HSM)\
**Post date:** [May 19, 2020, 8:22pm UTC](https://support.prodi.gy/t/textcat-teach-with-custom-model-from-spacy/2928/1 "2020-05-19T20:22:33Z")

</div>

Hi,

I have trained a custom textcat model in spaCy and wanted to use that model as a base model to label more data in Prodigy but got this error.

> ```
> Task queue depth is 1
> Exception when serving /get_questions
> Traceback (most recent call last):
> File "/opt/anaconda3/lib/python3.7/site-packages/waitress/channel.py", line 336, in service
> task.service()
> File "/opt/anaconda3/lib/python3.7/site-packages/waitress/task.py", line 175, in service
> self.execute()
> File "/opt/anaconda3/lib/python3.7/site-packages/waitress/task.py", line 452, in execute
> app_iter = self.channel.server.application(env, start_response)
> File "/opt/anaconda3/lib/python3.7/site-packages/hug/api.py", line 451, in api_auto_instantiate
> return module. __hug_wsgi__ (*args, **kwargs)
> File "/opt/anaconda3/lib/python3.7/site-packages/falcon/api.py", line 244, in __call__
> responder(req, resp, **params)
> File "/opt/anaconda3/lib/python3.7/site-packages/hug/interface.py", line 789, in __call__
> raise exception
> File "/opt/anaconda3/lib/python3.7/site-packages/hug/interface.py", line 762, in __call__
> self.render_content(self.call_function(input_parameters), context, request, response, **kwargs)
> File "/opt/anaconda3/lib/python3.7/site-packages/hug/interface.py", line 698, in call_function
> return self.interface(**parameters)
> File "/opt/anaconda3/lib/python3.7/site-packages/hug/interface.py", line 100, in __call__
> return __hug_internal_self._function(*args, **kwargs)
> File "/opt/anaconda3/lib/python3.7/site-packages/prodigy/_api/hug_app.py", line 206, in get_questions
> tasks = controller.get_questions()
> File "cython_src/prodigy/core.pyx", line 130, in prodigy.core.Controller.get_questions
> File "cython_src/prodigy/components/feeds.pyx", line 58, in prodigy.components.feeds.SharedFeed.get_questions
> File "cython_src/prodigy/components/feeds.pyx", line 63, in prodigy.components.feeds.SharedFeed.get_next_batch
> File "cython_src/prodigy/components/feeds.pyx", line 140, in prodigy.components.feeds.SessionFeed.get_session_stream
> File "/opt/anaconda3/lib/python3.7/site-packages/toolz/itertoolz.py", line 376, in first
> return next(iter(seq))
> File "cython_src/prodigy/components/sorters.pyx", line 151, in __iter__
> File "cython_src/prodigy/components/sorters.pyx", line 61, in genexpr
> File "cython_src/prodigy/util.pyx", line 381, in predict
> File "/opt/anaconda3/lib/python3.7/site-packages/toolz/itertoolz.py", line 242, in interleave
> yield next(itr)
> File "cython_src/prodigy/models/textcat.pyx", line 168, in __call__
> File "/opt/anaconda3/lib/python3.7/site-packages/spacy/language.py", line 688, in pipe
> for doc, context in izip(docs, contexts):
> File "/opt/anaconda3/lib/python3.7/site-packages/spacy/language.py", line 716, in pipe
> for doc in docs:
> File "/opt/anaconda3/lib/python3.7/site-packages/spacy/language.py", line 903, in _pipe
> for doc in docs:
> File "pipes.pyx", line 914, in pipe
> File "pipes.pyx", line 920, in spacy.pipeline.pipes.TextCategorizer.predict
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/neural/_classes/model.py", line 169, in __call__
> return self.predict(x)
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/neural/_classes/feed_forward.py", line 40, in predict
> X = layer(X)
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/neural/_classes/model.py", line 169, in __call__
> return self.predict(x)
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/neural/_classes/model.py", line 133, in predict
> y, _ = self.begin_update(X, drop=None)
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/api.py", line 163, in begin_update
> values = [fwd(X, *a, **k) for fwd in forward]
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/api.py", line 163, in <listcomp>
> values = [fwd(X, *a, **k) for fwd in forward]
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/api.py", line 256, in wrap
> output = func(*args, **kwargs)
> File "/opt/anaconda3/lib/python3.7/site-packages/thinc/neural/_classes/feed_forward.py", line 46, in begin_update
> X, inc_layer_grad = layer.begin_update(X, drop=drop)
> File "/opt/anaconda3/lib/python3.7/site-packages/spacy/_ml.py", line 679, in concatenate_lists_fwd
> drop *= drop_factor
> TypeError: unsupported operand type(s) for *=: 'NoneType' and 'float'
> 
> ```

spaCy version 2.2.4  
Prodigy Version 1.8.5

Command I used:

> prodigy textcat.teach my\_dataset ./models/custom ./prodigy\_input.jsonl --label A,B,C --patterns ./patterns.jsonl

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [May 20, 2020, 12:21pm UTC](https://support.prodi.gy/t/textcat-teach-with-custom-model-from-spacy/2928/2 "2020-05-20T12:21:40Z")

</div>

Hi! What's in your `prodigy_input.jsonl` and where does the data come from? From the error, it sounds like something is being passed through that's `None` and shouldn't be. Does your data have anything pre-defined, like `"score"`? Or is anything else `None`/`null` or looks suspicious?

---

<div class="post-metadata">

**Author:** ![HSM](https://avatars.discourse-cdn.com/v4/letter/h/ea666f/32.png) [@HSM](https://support.prodi.gy/u/HSM)\
**Post date:** [May 20, 2020, 1:44pm UTC](https://support.prodi.gy/t/textcat-teach-with-custom-model-from-spacy/2928/3 "2020-05-20T13:44:54Z")

</div>

I don't get any error while passing `en_vectors_web_lg` or `en_core_web_lg` as a base model.  
I tried with a simple txt file, and get the same error. And that jsonl file has nothing just dictionaries and `"text"` as a key.  
Also, my Prodigy uses Spacy 2.1 while i trained my custom model with 2.2 version. Could it be a problem here?

---

<div class="post-metadata">

**Author:** ![ines](https://sea2.discourse-cdn.com/flex020/user_avatar/support.prodi.gy/ines/32/3_2.png) [@ines](https://support.prodi.gy/u/ines)\
**Post date:** [May 21, 2020, 5:50pm UTC](https://support.prodi.gy/t/textcat-teach-with-custom-model-from-spacy/2928/4 "2020-05-21T17:50:39Z")

</div>

> [@HSM](#):
>
> Also, my Prodigy uses Spacy 2.1 while i trained my custom model with 2.2 version. Could it be a problem here?

Ah, yes, that's most likely the problem then. Models are compatible between patch updates, but minor version updates require new models / retraining your models.
