我正在尝试解决此错误:
AttributeError: module 'tensorflow.python.keras.api._v2.keras.losses' has no attribute 'sparse_softmax_cross_entropy'对于上下文,我在windows和python3.6上使用tensorflow2.0。我正在尝试对标签为0或1的3-axis数据进行一些快速分类。
通常的model.fit()方法不能让我对数据进行足够的控制,所以我试图一步一步地在嵌套循环中进行拟合。
以下是模型:
model = tf.keras.Sequential([
tf.keras.layers.Dense(3),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(16)),
tf.keras.layers.Dense(1, activation = 'sigmoid')
])下面是我用于管件的代码:
def fit(epochs=1):
global_step = tf.Variable(0)
for epoch in range(epochs):
epoch_loss_avg = tf.metrics.Mean()
epoch_accuracy = tf.metrics.Accuracy()
for data_ in SQdatas:
data = tf.convert_to_tensor(data_)
for dataslice in data:
inputs, label = tf.transpose([[dataslice[1:4]]]), dataslice[4]
loss_value, grads = grad(model, inputs, label)
model.optimizer.apply_gradients(zip(grads, model.trainable_variables), global_step)
epoch_loss_avg(loss_value)
epoch_accuracy(tf.argmax(model(x)), y)
train_loss_results.append(epoch_loss_avg.result())
train_accuracy_results.append(epoch_accuracy.result())运行时,我得到了标题中提到的错误,我猜这是一个tensorflow2.0兼容性问题,因为tf.losses.sparse_softmax_cross_entropy应该存在于1.3中。如果是,那么替代方案是什么?若否,原因为何?谢谢您抽时间见我。
我看了这个错误的外观,所有人都提到,当从tensorflow 1.2升级到1.3修复这个问题时,这是不适用的。我仍然尝试卸载tensorflow2.0、卸载protobuf并重新安装tensorflow2.0,但都不起作用。
发布于 2019-05-16 16:15:51
https://stackoverflow.com/questions/56162774
复制相似问题