Используйте модель мобильного телефона keras - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь использовать мобильную сеть Keras для классификации изображений. Моя входная форма (64, 64, 3), и в моем наборе данных есть два класса. Я не хочу использовать тренировочные веса.

Вот мой код.

model = MobileNet(weights=None, include_top=True, input_shape=(64, 64, 3), classes=2)

Мои вопросы: include_top должно быть True или False? Поскольку чиновник сказал, что,

input_shape: необязательный кортеж формы, указывается только в том случае, если include_top имеет значение False

include_top: включать ли полностью подключенный уровень в верхней части сети.

Я хотел бы провести классификацию изображений, поэтому я думаю, что мой последний слой должен быть полностью подключен. Это правильно?

Спасибо.

1 Ответ

0 голосов
/ 27 апреля 2018

Если вы хотите передать входную форму (64,64,3), тогда вам нужно

include_top=False

Да, в конце вам понадобится полностью подключенный слой. Вам нужно будет построить свой собственный топ в сети. Ваша модель будет примерно такой

base_model= MobileNet(weights=None, include_top=False, input_shape=(64, 64, 3))
x=base_model.output
x=Flatten()(x)
x=Dense(...)(x)
.
.
# Softmax layer for classification
predictions=Dense(2,activation='softmax')
model=(x=base_model.input,output=predictions)

Я не знаю, почему нам нужно удалить полностью связанные слои, чтобы изменить input_shape, но я думаю, что вышеприведенное решение будет работать

Edit:

Почему мы должны установить для include_top значение False, если input_shape отличается?

Потому что в конце он изменяет размер ввода на полностью связанные слои.
См. этот ответ для дальнейшего объяснения

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