如何解决AttributeError ::“模块”对象没有属性“ SparseCategoricalCrossentropy”
class MyLinearModel(Model):
def __init__(self):
super(MyLinearModel,self).__init__()
self.flatten = Flatten()
self.d1 = Dense(10,activation='softmax',name="dense1")
def call(self,x):
x = self.flatten(x)
return self.d1(x)
model = MyLinearModel()
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()
optimizer = tf.keras.optimizers.SGD()
...
我收到以下错误:
AttributeError: 'module' object has no attribute 'SparseCategoricalCrossentropy'
解决方法
我发现具有相似功能的最早版本是1.13,这是链接https://github.com/tensorflow/docs/blob/r1.13/site/en/api_docs/python/tf/keras/losses/CategoricalCrossentropy.md
它确实需要一键编码的目标,而不是仅传递表示索引的整数。
您将在Tensorflow 1.15.0中找到相同的功能,这是指向文档https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/keras/losses/SparseCategoricalCrossentropy
的链接如果您打算使用GPU版本,则两个版本都需要CUDA 10.0。
这里是tensorflow-gpu安装https://www.tensorflow.org/install/gpu#install_cuda_with_apt
的文档链接作为一个附带说明,每当您想查看python中某个模块的内容时,只需在其上调用内置help()函数即可。就您而言,您可以提供帮助(tf.keras.losses),在大多数情况下,它可能会提供一些见解。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。