Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras-softmax功能的默认轴设置为轴_Python_Tensorflow_Keras_Softmax_Activation Function - Fatal编程技术网

Python Keras-softmax功能的默认轴设置为轴

Python Keras-softmax功能的默认轴设置为轴,python,tensorflow,keras,softmax,activation-function,Python,Tensorflow,Keras,Softmax,Activation Function,我正在学习如何创建顺序模型。我有一个模型: *model = Sequential()* 然后我继续添加池层和卷积层(这很好)。但在创建密集层时: *model.add(Dense(num_classes, activation = 'softmax'))* 该行返回: *tf.nn.softmax(x, axis=axis)* 由于未定义轴,因此导致错误。Keras和TensorFlow文档都显示softmax的默认轴为None或-1 这是keras的错误吗?是否有一个简单的解决方

我正在学习如何创建顺序模型。我有一个模型:

*model  =  Sequential()*
然后我继续添加池层和卷积层(这很好)。但在创建密集层时:

*model.add(Dense(num_classes, activation = 'softmax'))*
该行返回:

*tf.nn.softmax(x, axis=axis)* 
由于未定义轴,因此导致错误。Keras和TensorFlow文档都显示softmax的默认轴为None或-1

这是keras的错误吗?是否有一个简单的解决方法(如果我设置轴,我不确定输入张量是什么)


-如果有必要,我可以添加其余的代码,但它只是由其他层组成,我认为这不会有多大帮助

我认为您的KERA和/或TensorFlow不是最新的,您应该更新它/它们

这是Keras在2017年夏天的一个已知问题,并在2007年修复。请参阅有关错误报告的更多信息

另外,轴
axis
位于TensorFlow的
softmax()
中,因此如果TensorFlow版本为1.4.0或更低,也会导致此错误

哪一个确切地导致了错误取决于处理的张量的等级,如果你在最后一次检查Keras的来源

此代码适用于当前版本(在上测试):

导入keras
从keras.models导入顺序
从keras.layers导入致密、活化
从keras.optimizers导入新加坡元
打印(keras.\uuuu版本\uuuuu)
模型=顺序()
添加(密集(6,输入_形状=(6,),激活='softmax'))
sgd=sgd(lr=0.01,衰变=1e-6,动量=0.9,nesterov=True)
model.compile(loss='classifical_crossentropy',
优化器=新加坡元,
指标=[‘准确度’])
输出

2.1.6


但更重要的是,编译模型时不会出现错误。

正常情况下,此操作不会出现任何问题,而且
axis=-1
确实如此。但是我不知道你是怎么得到tf.nn.softmax的。你是怎么得到的?我在试图找到错误根源的回溯中看到了它:在softmax return tf.nn中的第2963行。softmax(x,axis=axis)TypeError:softmax()得到了一个意外的关键字参数'axis',所以,实际上,softmax“不”需要一个轴。。。。这可能是tensorflow的旧版本,不是吗?没错!在使用tensorflow 1.4.0时,根据对该问题的评论,我认为在tensorflow版本中可能会出现问题。说“softmax”得到了一个意外的参数“axis”。不,实际上它指的是
Activations
包中
softmax()
的Keras实现。如果您遵循以下步骤,您会看到Keras基于
K.exp()
K.sum()
等实现了自己的softmax@DanielMöller或者您是对的,根据错误消息,只需重新阅读即可。很高兴看到这一切…@DanielMöller
axis
在TensorFlow的
softmax()
中,因此是的,如果TensorFlow版本为1.4.0或更低,则会导致此错误。