Я пытаюсь устранить эту ошибку:
AttributeError: module 'tensorflow.python.keras.api._v2.keras.losses' has no attribute 'sparse_softmax_cross_entropy'
Для контекста я использую tensorflow2.0
на окнах с python3.6
.Я пытаюсь выполнить некоторую быструю категоризацию с данными 3-axis
с меткой 0 или 1.
Обычный метод 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
, это не сработало.