首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里可以找到tensorflow2.0中手动拟合的损失函数?

在哪里可以找到tensorflow2.0中手动拟合的损失函数?
EN

Stack Overflow用户
提问于 2019-05-16 15:13:31
回答 1查看 439关注 0票数 1

我正在尝试解决此错误:

代码语言:javascript
复制
    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()方法不能让我对数据进行足够的控制,所以我试图一步一步地在嵌套循环中进行拟合。

以下是模型:

代码语言:javascript
复制
    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')
            ])

下面是我用于管件的代码:

代码语言:javascript
复制
    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,但都不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 16:15:51

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56162774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档