AWS Deeplens с Keras и моделью MXNet: ошибка ValueError для символа «данные» не найдена - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть модель CNN, которую я сделал, используя Keras, используя MXNet в качестве внутреннего интерфейса.Я могу создавать, обучать и экспортировать модели без проблем.Однако, когда я попытался загрузить эту модель в DeepLens, я получил следующую ошибку:

ValueError: [91mYou created Module with Module(..., data_names=['data']) but input with name 'data' is not found in symbol.list_arguments(). Did you mean one of:
        /conv2d_1_input1
        conv2d_1/kernel1
        conv2d_1/bias1
        conv2d_2/kernel1
        conv2d_2/bias1
        conv2d_3/kernel1
        conv2d_3/bias1
        dense_1/kernel1
        dense_1/bias1
        dense_2/kernel1
        dense_2/bias1
        dense_3/kernel1
        dense_3/bias1[0m

Я никогда не приводил аргумент для символа с именем data.Все остальные символы имеют смысл, потому что они были получены из моей модели.Я добавил весь код, связанный с созданием Keras CNN ниже.

model = Sequential()
model.add(Conv2D(8, (1,1), input_shape=inputShape))
model.add(Dropout(0.5))
model.add(Activation('relu'))

model.add(Conv2D(16, (1,1), padding='same'))
model.add(Dropout(0.5))
model.add(Activation('relu'))

model.add(Conv2D(32, (1,1), padding='same'))
model.add(Dropout(0.5))
model.add(Activation('relu'))

model.add(Flatten())
model.add(Dense(240))

model.add(Activation('relu'))
model.add(Dense(120))

model.add(Dense(2))
model.add(Activation('sigmoid'))

Есть ли способ обойти это или способ работать с этим, используя Keras с MXNet в качестве бэкэнда?Нужно ли запускать команду на Amazon Deeplens?Что я должен добавить в модель?

1 Ответ

0 голосов
/ 12 апреля 2019

Фактически проблема заключается в том, что по умолчанию имя входного символа в MXNet равно data.В Keras кажется, что имя по умолчанию, используемое для входного символа, /conv2d_1_input1.Вы можете сделать две вещи:

  • Переименовать символ /conv2d_1_input1 в вашем файле -symbol.json на data.
  • Я не очень знаком с тем, как управляется глубокий объектив, но если у вас есть доступ к коду, который делает: Module(..., data_names=['data']) замените его на Module(..., data_names=['/conv2d_1_input1']), как в этом уроке
...