Где найти функции потерь для ручной подгонки в tenorflow2.0? - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь устранить эту ошибку:

    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, это не сработало.

1 Ответ

0 голосов
/ 16 мая 2019

Решено, я не смог найти документацию для 2.0, но вот она:

https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/losses/SparseCategoricalCrossentropy

...