Python 没有为任何变量提供梯度:[';稠密/内核:0';';稠密/偏差:0';';稠密/内核:0';';稠密/偏差:0';';稠密/内核:0';';&#

Python 没有为任何变量提供梯度:[';稠密/内核:0';';稠密/偏差:0';';稠密/内核:0';';稠密/偏差:0';';稠密/内核:0';';&#,python,tensorflow,keras,Python,Tensorflow,Keras,我试图用一个图像数据集来训练我的模型,代码如下: import tensorflow as tf output_size = 10 hidden_layer_size = 50 model = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape = (200, 200, 3)), tf.keras.layers.Flatten(input_shape = (200, 200

我试图用一个图像数据集来训练我的模型,代码如下:

import tensorflow as tf

output_size = 10
hidden_layer_size = 50

model = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape = (200, 200, 3)),
                             tf.keras.layers.Flatten(input_shape = (200, 200, 3)),
                             tf.keras.layers.Dense (hidden_layer_size, activation = 'relu'),
                             tf.keras.layers.Dense (hidden_layer_size, activation = 'relu'),
                             tf.keras.layers.Dense (output_size, activation = 'softmax')])

model.compile(optimizer = 'adam', 
              loss = 'sparse_categorical_crossentropy',
              metrics = ['accuracy'])
num_epochs = 10
batch_size = 100

model.fit(train_img,
          epochs = num_epochs,
          validation_data = test_img,
          verbose = 2)
每次我运行fit命令时,都会弹出错误的吼声,我无法解决它:

ValueError: No gradients provided for any variable: ['dense/kernel:0', 'dense/bias:0', 'dense_1/kernel:0', 'dense_1/bias:0', 'dense_2/kernel:0', 'dense_2/bias:0']

您必须将数据集作为
x
y
参数传递到
.fit(…)
。正如您所说,您的
train\u img
包含目标标签,您可以通过
x=train\u img[0]
y=train\u img[1]
进行修复

将tensorflow导入为tf
输出大小=10
隐藏层大小=50
model=tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(200200,3)),
tf.keras.layers.Dense(隐藏层大小,激活='relu'),
tf.keras.layers.Dense(隐藏层大小,激活='relu'),
tf.keras.layers.Dense(输出大小,激活='softmax'))
compile(优化器='adam',
损失='稀疏\分类\交叉熵',
指标=[‘准确度’])
num_epochs=10
批量大小=100
model.fit(x=train\u img[0],//np.random.rand(1002002003)
y=train_img[1],//np.random.randint(100,10)
epochs=num_epochs,
验证数据=测试数据,
详细信息=2)
据文件说,

Input data. It could be:
A Numpy array (or array-like), or a list of arrays (in case the model has multiple inputs).
A TensorFlow tensor, or a list of tensors (in case the model has multiple inputs).
A dict mapping input names to the corresponding array/tensors, if the model has named inputs.
A tf.data dataset. Should return a tuple of either (inputs, targets) or (inputs, targets, sample_weights).
A generator or keras.utils.Sequence returning (inputs, targets) or (inputs, targets, sample_weights). A more detailed description of unpacking behavior for iterator types (Dataset, generator, Sequence) is given below.

您的tensorflow版本是什么?你为什么要把两层放平呢?你只需要一个。我的tensorflow版本是2.3.0,关于第二个展平层,我忘了删除它。你的
train\u img
是否也包含目标标签?是的,它包含目标标签什么是
train\u img
?如果是列表,元素是什么?如果元素是numpy数组,那么形状是什么?谢谢,这解决了我的问题很高兴听到这个。我认为在tf.keras或keras的旧版本中,您可以这样通过。fit API已更改。你能接受这个答案吗?@GhofranChallouf欢迎来到SO。请遵循此指南。