2017-04-06 101 views
3

我正在学习深度学习,并且在执行ANN时遇到问题。下面是我在做什么:人工神经网络 - 编译错误

初始化ANN(我已经分裂事先数据集):

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最新版本

在此先感谢。

回答

0

Tensorflow更改了此功能的关键字名称,并且您可能正在使用tf或keras的过时版本,请更新两者,并且您应该很好。

+0

我只是让他们今天安装,所以必须更新,对吗?难道是我正在使用的教程使用的是旧版本? –

+0

很可能,浏览一下你在教程中编写的所有内容的文档,以确保它仍然有效。 –

+0

但在https://keras.io/losses/中,binary_crossentropy显示在**可用损失函数**下。所以我还是不明白!它是否必须对输出层中使用的sigmoid函数做任何事情? –

0

pip install -U tensorflow固定的问题,对我来说