Numpy 无打字错误
我正在阅读jpg图像,然后将它们重塑为张量。我将这些图像转换为float32:Numpy 无打字错误,numpy,theano,lasagne,nolearn,Numpy,Theano,Lasagne,Nolearn,我正在阅读jpg图像,然后将它们重塑为张量。我将这些图像转换为float32: def load(folder,table): X=[] train = pd.read_csv(table) for i,img_id in enumerate(train['Image']): img = io.imread(folder+img_id[2:]) X.append(img) X = np.array(X)/255. X = X.astype(np.float32) X =
def load(folder,table):
X=[]
train = pd.read_csv(table)
for i,img_id in enumerate(train['Image']):
img = io.imread(folder+img_id[2:])
X.append(img)
X = np.array(X)/255.
X = X.astype(np.float32)
X = X.reshape(-1, 1, 225, 225)
return X
然而,我得到了这个错误
TypeError: ('Bad input argument to theano function with name "/Users/mas/PycharmProjects/Whale/nolearn_convnet/Zahraa5/lib/python2.7/site-packages/nolearn/lasagne/base.py:435" at index 1(0-based)', 'TensorType(int32, vector) cannot store a value of dtype float32 without risking loss of precision. If you do not mind this loss, you can: 1) explicitly cast your data to int32, or 2) set "allow_input_downcast=True" when calling "function".', array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]], dtype=float32))
这是一个很好的例子
道格在那里给出了答案:
您使用的theano变量定义为整数,但
以浮点形式传递,因此错误'TensorType(int32,vector)无法
存储dtype float32…'的值。您可以修改您的数据
加载代码以将其转换为int32,或将符号变量更改为
支持浮动32的东西
所以在某个地方你有一条线,看起来像:
x = T.ivector()
或
看起来你需要把它改成
x = T.tensor4()
如果
dtype
已更改为等于theano.config.floatX
,并且维度已更改为4,以匹配X
的四维性质,如果您没有弄清楚,我会遇到类似的错误,下面是我如何修复它的:
将你的y转换为int32。x值可以是floatx,但在nolearn中y必须是int32才能进行分类。有问题的变量是x,如代码中所述。我说的张量是一个4D变量凹凸数组@DanielRenshaw在无用户邮件列表上的回复。
x = T.tensor4()