NervanaSystems / neon

Intel® Nervana™ reference deep learning framework committed to best performance on all hardware
http://neon.nervanasys.com/docs/latest
Apache License 2.0
3.87k stars 811 forks source link

OneHot Indices issues #459

Open andrewasche opened 5 years ago

andrewasche commented 5 years ago

Got this issue both when running the Exercise+3b from Coursera's Practical Deep Learning class. I have also got this issue on the 02 VGG Fine-Tuning.ipynb. I got this issue on neon 2.2 and aeon 1.0 . I haven't been successful finding any other info on this issue.

Evaluating the model We can now compute the misclassification on the test set to see how well we did.

Check the performance on the supplied test set

from neon.transforms import Misclassification

error_pct = 100 * model.eval(test_set, metric=Misclassification())

print 'Misclassification error = %.1f%%' % error_pct


AssertionError Traceback (most recent call last)

in () 2 from neon.transforms import Misclassification 3 ----> 4 error_pct = 100 * model.eval(test_set, metric=Misclassification()) 5 print 'Misclassification error = %.1f%%' % error_pct /home/andrew/anaconda2/envs/neon/lib/python2.7/site-packages/neon-2.2.0-py2.7.egg/neon/models/model.pyc in eval(self, dataset, metric) 267 else: 268 ndata = dataset.ndata --> 269 for x, t in dataset: 270 x = self.fprop(x, inference=True) 271 /home/andrew/anaconda2/envs/neon/lib/python2.7/site-packages/neon-2.2.0-py2.7.egg/neon/data/dataloader_transformers.pyc in __iter__(self) 25 26 def __iter__(self): ---> 27 for tup in self.dataloader: 28 if self.index is None: 29 yield self.transform(tup) /home/andrew/anaconda2/envs/neon/lib/python2.7/site-packages/neon-2.2.0-py2.7.egg/neon/data/dataloader_transformers.pyc in __iter__(self) 25 26 def __iter__(self): ---> 27 for tup in self.dataloader: 28 if self.index is None: 29 yield self.transform(tup) /home/andrew/anaconda2/envs/neon/lib/python2.7/site-packages/neon-2.2.0-py2.7.egg/neon/data/dataloader_transformers.pyc in __iter__(self) 29 yield self.transform(tup) 30 else: ---> 31 ret = self.transform(tup[self.index]) 32 if ret is None: 33 raise ValueError( /home/andrew/anaconda2/envs/neon/lib/python2.7/site-packages/neon-2.2.0-py2.7.egg/neon/data/dataloader_transformers.pyc in transform(self, t) 54 55 def transform(self, t): ---> 56 self.output[:] = self.be.onehot(t, axis=0) 57 return self.output 58 /home/andrew/anaconda2/envs/neon/lib/python2.7/site-packages/neon-2.2.0-py2.7.egg/neon/backends/backend.pyc in onehot(self, indices, axis, out) 1533 raise ValueError("bad axis for onehot") 1534 #print(indices) -> 1535 #assert (indices.dtype in [np.dtype(np.int32), np.dtype(np.uint32)]), "onehot indices " \ 1536 # "should be int32 or uint32, got " + str(indices.dtype) 1537 return OpTreeNode.build("onehot", None, None, idx=indices, axis=axis, out=out) AssertionError: onehot indices should be int32 or uint32, got float32