簡體   English   中英

在哪里可以找到Tensorflow2.0中的手動擬合損失函數?

[英]Where to find the loss functions for manual fitting in tensorflow2.0?

我正在嘗試解決此錯誤:

    AttributeError: module 'tensorflow.python.keras.api._v2.keras.losses' has no attribute 'sparse_softmax_cross_entropy'

對於情況下,我使用tensorflow2.0上與Windows python3.6 我正在嘗試對標簽為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 ,但它沒有工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM