Keras - Ось по умолчанию для функции softmax установлена ​​на Ось - PullRequest
0 голосов
/ 14 мая 2018

Я учусь создавать последовательные модели.У меня есть модель:

*model  =  Sequential()*

Затем я продолжил добавлять слои объединения и слои свертки (которые были в порядке).Но при создании плотного слоя:

*model.add(Dense(num_classes, activation = 'softmax'))*

строка вернулась:

*tf.nn.softmax(x, axis=axis)* 

, что вызвало ошибку, поскольку ось не была определена.Как документация Keras, так и документация TensorFlow показывают, что осью по умолчанию для softmax является None или -1.

Это ошибка с керасом?И есть ли простой обходной путь (если бы я должен был задать ось, я не уверен, какой будет входной тензор)?

- я могу добавить остальную часть кода, если это необходимо, но он просто состоит издругие слои, и я не думаю, что это сильно поможет.

1 Ответ

0 голосов
/ 14 мая 2018

Я считаю, что ваши Keras и / или TensorFlow не обновлены, вы должны обновить их / их.

Эта проблема была известна в Керасе летом 2017 года и была исправлена ​​в this commit . Подробнее о этом комментарии см. Отчет об ошибке.

Также axis было введено в качестве аргумента 22 ноября 2017 года в TensorFlow's softmax(), поэтому, если версия TensorFlow 1.4.0 или менее, это также приведет к этой ошибке.

Какая именно причина ошибки, зависит от ранга обработанного тензора, если вы просматриваете источник Keras при связанном коммите .

Этот код подходит для текущих версий (проверено на https://colab.research.google.com):

import keras
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import SGD

print( keras.__version__ )

model = Sequential()
model.add( Dense(6, input_shape=(6,), activation = 'softmax' ) )

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])
* * 1 022 * 1023 выходов *

2.1.6

но, что более важно, компилирует модель без ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...