Как подогнать мою модель с помощью трансферного обучения Vgg - PullRequest
0 голосов
/ 02 июня 2019

Я новичок в машинном обучении. У меня есть 1 пример классификации кошек и собак. и вот ссылка на него

https://pythonprogramming.net/convolutional-neural-network-kats-vs-dogs-machine-learning-tutorial/

Это сработало отлично, но теперь, когда я хочу внедрить в него обучение с помощью VGG16, оно не работает

from keras.models import Sequential, Model, load_model
from keras.applications.vgg16 import VGG16

from keras import optimizers
from keras.layers import Dropout, Flatten, Dense, Activation

from keras.models import Sequential
from keras import utils

train = train_data[:-500]
test = train_data[-500:]

X = np.array([i[0] for i in train]).reshape(-1,IMG_SIZE,IMG_SIZE,3)
Y = [i[1] for i in train]

test_x = np.array([i[0] for i in test]).reshape(-1,IMG_SIZE,IMG_SIZE,3)
test_y = np.array([i[1] for i in test])

from keras.layers import Activation, Conv2D, Dense, Dropout, Flatten, MaxPooling2D
from keras.models import Sequential


modelvgg = VGG16(weights='imagenet', include_top=False, input_shape=(50,50,3))
type(modelvgg)
modelvgg.layers.pop()
model = Sequential()
for layer in modelvgg.layers:
    model.add(layer)

for layer in model.layers:
    layer.trainable = False 

model.add(Dense(1, activation= 'sigmoid'))



model.compile(optimizer='adam', learning_rate=LR, loss='categorical_crossentropy', name='targets')
model.summary()


model.fit({'input': X}, {'targets': Y}, n_epoch=10, validation_set=({'input': test_x}, {'targets': test_y}), 
    snapshot_step=500, show_metric=True, run_id=MODEL_NAME)

Вот ошибка, которую я всегда получаю

Я думаю, что есть проблема, я думаю, как я подгоняю свой модуль, поэтому, пожалуйста, мне нужна помощь с этим

Unrecognized keyword arguments: {'n_epoch': 10, 'validation_set': ({'input': array([[[[ 41,  40,  36],
         [ 43,  42,  38],
         [ 43,  42,  38],

1 Ответ

1 голос
/ 02 июня 2019

Учебник, на который вы ссылаетесь, не использует keras, но tflearn, неудивительно, что вызов fit не работает.Правильный вызов с керасом будет:

model.fit(X, Y, epochs=10, validation_data=(test_x, test_y))
...