Numpy 无打字错误

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 =

我正在阅读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 = 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()