title: spacy 2.0.12 / thinc 6.10.3 crashing django on heroku
body: <p>I'm having an issue with <code>v2.0.12</code> that I've traced into <code>thinc</code>. <code>pip list</code> shows me:</p>
  
  <pre><code>msgpack (0.5.6)
  msgpack-numpy (0.4.3.1)
  murmurhash (0.28.0)
  regex (2017.4.5)
  scikit-learn (0.19.2)
  scipy (1.1.0)
  spacy (2.0.12)
  thinc (6.10.3)
  </code></pre>
  
  <p>I have code that works fine on my Mac, but fails in production. The stack trace goes into <code>spacy</code> and then into <code>thinc</code> -- and then django literally crashes. This all worked when I used an earlier version of spacy -- this has only come about since I'm attempting to upgrade to <code>v2.0.12</code>.</p>
  
  <p>My requirements.txt file has these lines:</p>
  
  <pre><code>regex==2017.4.5
  spacy==2.0.12
  scikit-learn==0.19.2
  scipy==1.1.0
  https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz
  </code></pre>
  
  <p>The last line pulls the <code>en_core_web_sm</code> down during deployment. I'm doing this so I can get those models loaded on Heroku during deployment. </p>
  
  <p>I then load the parser like this:</p>
  
  <pre><code>import en_core_web_sm
  en_core_web_sm.load()
  </code></pre>
  
  <p>Then the stack trace shows the problem here in <code>thinc:</code></p>
  
  <pre><code>File "spacy/language.py", line 352, in __call__
    doc = proc(doc)
  File "pipeline.pyx", line 426, in spacy.pipeline.Tagger.__call__
  File "pipeline.pyx", line 438, in spacy.pipeline.Tagger.predict
  File "thinc/neural/_classes/model.py", line 161, in __call__
    return self.predict(x)
  File "thinc/api.py", line 55, in predict
    X = layer(X)
  File "thinc/neural/_classes/model.py", line 161, in __call__
    return self.predict(x)
  File "thinc/api.py", line 293, in predict
    X = layer(layer.ops.flatten(seqs_in, pad=pad))
  File "thinc/neural/_classes/model.py", line 161, in __call__
    eturn self.predict(x)
  File "thinc/api.py", line 55, in predict
    X = layer(X)
  File "thinc/neural/_classes/model.py", line 161, in __call__
    return self.predict(x)
  File "thinc/neural/_classes/model.py", line 125, in predict
    y, _ = self.begin_update(X)
  File "thinc/api.py", line 374, in uniqued_fwd
    Y_uniq, bp_Y_uniq = layer.begin_update(X_uniq, drop=drop)
  File "thinc/api.py", line 61, in begin_update
    X, inc_layer_grad = layer.begin_update(X, drop=drop)
  File "thinc/neural/_classes/layernorm.py", line 51, in begin_update
    X, backprop_child = self.child.begin_update(X, drop=0.)
  File "thinc/neural/_classes/maxout.py", line 69, in begin_update
    output__boc = self.ops.batch_dot(X__bi, W)
  File "gunicorn/workers/base.py", line 192, in handle_abort
    sys.exit(1)
  </code></pre>
  
  <p>Again -- this all works on my laptop.</p>
  
  <p>Is there something wrong with how I'm loading? Or is my version of <code>thinc</code> out of date? If so, what should my <code>requirements.txt</code> file look like?</p>