Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
Tensorflow 检查目标时出错:预期密集_18具有形状(1),但获得具有形状(10)的数组_Tensorflow_Machine Learning_Neural Network - Fatal编程技术网

Tensorflow 检查目标时出错:预期密集_18具有形状(1),但获得具有形状(10)的数组

Tensorflow 检查目标时出错:预期密集_18具有形状(1),但获得具有形状(10)的数组,tensorflow,machine-learning,neural-network,Tensorflow,Machine Learning,Neural Network,我必须将MNIST数据分为10类。我正在将Y_序列转换为一个热编码数组。我已经看过很多答案,但没有一个有用。请在这方面指导我,因为我是ML和神经网络的新手 似乎没有必要在第一层中使用model.add(flatte())。您可以使用具有特定输入大小的密集层,如:model.add(密集(64,input\u shape=your\u input\u shape,activation=“relu”) 为了确保由于层的原因而发生此问题,您可以检查To_category()函数是否与jupyter n

我必须将MNIST数据分为10类。我正在将Y_序列转换为一个热编码数组。我已经看过很多答案,但没有一个有用。请在这方面指导我,因为我是ML和神经网络的新手

似乎没有必要在第一层中使用
model.add(flatte())
。您可以使用具有特定输入大小的密集层,如:
model.add(密集(64,input\u shape=your\u input\u shape,activation=“relu”)

为了确保由于层的原因而发生此问题,您可以检查
To_category()
函数是否与jupyter notebook单独工作

最新答案 在制作模型之前,你应该重塑你的模型。在这种情况下,28*28到784

  Y_train = to_categorical(Y_train, num_classes = 10)#
    random_seed = 2
    X_train,X_val,Y_train,Y_val = train_test_split(X_train, Y_train, test_size = 0.1, random_state=random_seed)
    Y_train.shape
    model = Sequential()

    model.add(Flatten())
    model.add(Dense(64, activation='relu'))
    model.add(Dense(128, activation='relu'))
    model.add(Dense(10, activation='softmax'))
    model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy',metrics=['accuracy'])

    model.fit(X_train, Y_train, batch_size = 86, epochs = 3,validation_data = (X_val, Y_val), verbose =2)
我还建议通过简单地将图像划分为255来规范化数据

在这一步之后,您应该创建您的模型

train_images = train_images.reshape((-1, 784))
test_images = test_images.reshape((-1, 784))
您是否注意到
input\u shape=(784,)
这就是您的扁平输入的形状

最后一步,编译和拟合

model = Sequential([
Dense(64, activation='relu', input_shape=(784,)),
Dense(64, activation='relu'),
Dense(10, activation='softmax'),
])

你要做的是,你刚刚展平了输入层,而没有向网络提供输入。这就是你遇到问题的原因。关键是你应该手动重塑你的输入,并使用参数
input\u shape

前馈到
densed()
层。我尝试添加了一个模型。densed的输入形状为(10,)然而,我得到了“检查输入时出错:预计密集的\u 42\u输入有2维,但得到了形状为(34020,28,28,1)的数组”@shreyanshupadhyay,我将更新我的答案以更清楚。感谢您的深入解释
model.compile(
optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'],
)

model.fit(
train_images,
train_labels,
epochs=10,
batch_size=16,
)