Python 在TensorFlow 2.0中:使用optimizer.apply_梯度训练错误

Python 在TensorFlow 2.0中:使用optimizer.apply_梯度训练错误,python,tensorflow,neural-network,tensorflow2.0,Python,Tensorflow,Neural Network,Tensorflow2.0,我正在尝试学习新的TF2.0Alpha版本。我正在训练一个用于二进制分类的顺序模型。我的数据表是df,它是一个numpy数组分类是我必须预测的类的一个热编码数据帧 模型的定义很清楚,因为它是损失和精度函数以及(Adam)优化器的定义。 但是,我在培训时遇到了一个错误: loss_history = [] accuracy_history = [] for epoch in range(n_epochs): with tf.GradientTape() as tape:

我正在尝试学习新的TF2.0Alpha版本。我正在训练一个用于二进制分类的
顺序
模型。我的数据表是
df
,它是一个numpy数组<代码>分类
是我必须预测的类的一个热编码数据帧

模型的定义很清楚,因为它是损失和精度函数以及(Adam)优化器的定义。 但是,我在培训时遇到了一个错误:

loss_history = []
accuracy_history = []

for epoch in range(n_epochs):

    with tf.GradientTape() as tape:

        # compute binary crossentropy loss (bce_loss)
        current_loss = bce_loss(model(df), classification.astype(np.float64))
        loss_history.append(current_loss)

        # train the model based on the gradient of loss function
        gradients = tape.gradient(current_loss, model.trainable_variables)
        optimizer.apply_gradients([gradients, model.trainable_variables])  # optimizer = Adam


    # print the training progress
    print(str(epoch+1) + '. Train Loss: ' + str(metrics) + ', Accuracy: ' + str(current_accuracy))

print('\nTraining complete.')
在这一点上,我得到了指向优化器的错误。apply_gradients()
。错误消息显示:

ValueError:要解压缩的值太多(应为2个)

我的错在哪里

我对这种类型的错误做了一些研究,但我发现与这个特定函数相关的任何有用的东西都没有。感谢您的帮助。

请尝试以下方法:

optimizer.apply_gradients(zip(gradients, model.trainable_variables))
请尝试以下方法:

optimizer.apply_gradients(zip(gradients, model.trainable_variables))

通过接受答案,问题已标记为已解决。不需要编辑问题。通过接受答案也可以看到问题已标记为已解决。不需要编辑问题。另见