Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 为什么Keras会告诉我;ValueError:使用序列设置数组元素。";尽管所有数组都是numpy数组?_Python 3.x_Tensorflow_Keras - Fatal编程技术网

Python 3.x 为什么Keras会告诉我;ValueError:使用序列设置数组元素。";尽管所有数组都是numpy数组?

Python 3.x 为什么Keras会告诉我;ValueError:使用序列设置数组元素。";尽管所有数组都是numpy数组?,python-3.x,tensorflow,keras,Python 3.x,Tensorflow,Keras,我正在尝试使用keras训练2D神经网络。当我尝试在keras中使用model.fit函数时,我收到了一条奇怪的错误消息,“ValueError:使用序列设置数组元素”。具体地说,错误表明我的“张量列标签”是序列而不是数组。但我的标签确实是numpy数组(不是序列)。我不知道凯拉斯为什么抱怨这件事 我正在学习构建网络的教程 tensor_train_data.shape #TensorShape([Dimension(209), Dimension(64), Dimension(64), Dim

我正在尝试使用keras训练2D神经网络。当我尝试在keras中使用model.fit函数时,我收到了一条奇怪的错误消息,“ValueError:使用序列设置数组元素”。具体地说,错误表明我的“张量列标签”是序列而不是数组。但我的标签确实是numpy数组(不是序列)。我不知道凯拉斯为什么抱怨这件事

我正在学习构建网络的教程

tensor_train_data.shape
#TensorShape([Dimension(209), Dimension(64), Dimension(64), Dimension(3)])
tensor_test_data.shape
#TensorShape([Dimension(50), Dimension(64), Dimension(64), Dimension(3)])
tensor_train_labels = tf.reshape(tensor_train_labels, [209,1])
tensor_test_labels = tf.reshape(tensor_test_labels, [50,1])
batch_size = 10
epochs = 8

model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(32, kernel_size=(3,3), activation='relu', 
input_shape=(64, 64, 3)))
model.add(tf.keras.layers.MaxPooling2D(pool_size=(2,2)))
model.add(tf.keras.layers.Dropout(0.25))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128, activation = 'relu'))
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(2, activation = 'softmax'))
model.compile(loss='categorical_crossentropy', optimizer = 
tf.keras.optimizers.Adam(lr=0.0001, decay=1e-6), metrics=['accuracy'])
model.fit(tensor_train_data/255.0, 
tf.keras.utils.to_categorical(tensor_train_labels), 
          batch_size = batch_size, 
          shuffle = True, 
          epochs = epochs,
          validation_data = (tensor_test_data/ 255.0, 
          tf.keras.utils.to_categorical(tensor_test_labels)))
scores = model.evaluate(tensor_test_labels/ 255.0, 
         tf.keras.utils.to_categorical(tensor_test_labels))
print('Loss: %.3f' % scores[0])
print('Accuracy: %.3f' % scores[1])

错误:

ValueError                                Traceback (most recent call last)
<ipython-input-224-80431a1b3e79> in <module>
      1 model.compile(loss='categorical_crossentropy', optimizer = tf.keras.optimizers.Adam(lr=0.0001, decay=1e-6), metrics=['accuracy'])
----> 2 model.fit(tensor_train_data/255.0, tf.keras.utils.to_categorical(tensor_train_labels), 
      3           batch_size = batch_size,
      4           shuffle = True,
      5           epochs = epochs,

~\AppData\Local\conda\conda\envs\deeplearning\lib\site-packages\tensorflow\python\keras\utils\np_utils.py in to_categorical(y, 
num_classes)
     37       last.
     38   """
---> 39   y = np.array(y, dtype='int')
     40   input_shape = y.shape
     41   if input_shape and input_shape[-1] == 1 and len(input_shape) > 1:

ValueError: setting an array element with a sequence.
ValueError回溯(最近一次调用)
在里面
1.model.compile(loss='classifical_crossentropy',optimizer=tf.keras.optimizers.Adam(lr=0.0001,detacy=1e-6),metrics=['accurity']))
---->2模型拟合(张量序列数据/255.0,tf.keras.utils.to分类(张量序列标签),
3批次尺寸=批次尺寸,
4 shuffle=True,
5个时代=时代,
~\AppData\Local\conda\conda\envs\deeplearning\lib\site packages\tensorflow\python\keras\utils\np_utils.py in to_category(y,
数量(每班)
最后一次。
38   """
--->39 y=np.array(y,dtype='int')
40输入_形=y形
41如果输入_形和输入_形[-1]==1且len(输入_形)>1:
ValueError:使用序列设置数组元素。

可能的错误是,当您尝试将其转换为numpy数组时,您有不同大小的数组。可能的解决方案:

可能的错误是,当您尝试将其转换为numpy数组时,您有不同大小的数组。可能的解决方案: