人工神经网络 - 编译错误

3

我正在自学深度学习,并在执行人工神经网络时遇到问题。这是我的操作过程:

初始化人工神经网络(我之前已经拆分了数据集):

classifier = Sequential()

添加输入层和第一个隐藏层:

classifier.add(Dense(input_dim = 11, kernel_initializer = 'uniform', activation = 'relu', units = 6))

添加第二个隐藏层:
classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu'))

添加输出层:

classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))

使用随机梯度下降编译ANN:

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])

在此之后,当我选择并运行最后一条命令时,会出现一个错误,内容如下:

TypeError: sigmoid_cross_entropy_with_logits() got an unexpected keyword argument 'labels'

我注意到当我使用loss = mean_squared_error时,它可以编译通过。你能告诉我发生了什么吗? SypderPython是最新的版本,截至我发布此信息的日期。 操作系统为Windows 10。 同时使用了Thanos、TensorFlow和Keras。
先谢谢你。
3个回答

0

Tensorflow更改了此函数的关键字名称,您可能正在使用过时版本的tf或keras,请更新两者,然后您就可以继续了。


我今天刚安装它们,所以必须更新,对吧?是不是我正在学习的教程使用的是旧版本? - Anonymous Person
很有可能,浏览一下你从教程中编写的所有内容的文档,以确保它仍然有效。 - Ziyad Edher
但是在https://keras.io/losses/中,binary_crossentropy出现在“可用损失函数”下。所以我仍然不明白!这与我在输出层使用的sigmoid函数有关吗? - Anonymous Person
为了排除故障,我将输出层的Sigmoid函数更改为“tanh”,然后更改为“ReLU”,但仍然存在相同的错误。因此,问题与此无关。请问有人可以帮我吗?! - Anonymous Person
这只是与损失相关的问题,就像我说的一样 - TensorFlow更改了命名约定,因此你可能会得到不同步的版本,仅此而已。这与激活函数无关。 - lejlot

0

已更新 - 但仍然相同。我如何知道我正在运行哪个版本的TF,GPU还是CPU?有可能两者都有吗? - Anonymous Person
不是夜间构建,而是我简单地更新了TF。它可以工作。谢谢。 - Anonymous Person

0

pip install -U tensorflow 对我解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接