Я запустил keras model.fit (), и он остановился - PullRequest
0 голосов
/ 27 апреля 2019

Я запустил этот код, но он не работал.это не было ошибкой.в блокноте Jupyter, он все еще работает (помечен как In [*])

Это мой блокнот Jupyter

_________________________________
In [*]: model.fit(
          img_vector, y,
          batch_size=128,
          epochs=10,
          verbose=2
       )
___________________________
WARNING:tensorflow:From C:\Users\il357\Anaconda3\envs\mlbook\lib\site-packages\tensorflow\python\ops\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
Epoch 1/10

Эпоха 1/10 отмечена, но это все.Я напишу предыдущий код.Я опущу импорт кода.(Это код поваренной книги Deeplearning. Вы можете найти его в github. Этот код работает на моем ноутбуке.)


# The number of image files is very large.. I think this maybe is the problem.

pet_images_fn = [fn for fn in os.listdir('pet_images') if fn.endswith('.jpg')]

# make image vector

labels = []
idx_to_labels = []
label_to_idx = {}
for fn in pet_images_fn:
    label, _ = fn.rsplit('_', 1)
    if not label in label_to_idx:
        label_to_idx[label] = len(idx_to_labels)
        idx_to_labels.append(label)
    labels.append(label_to_idx[label])
len(idx_to_labels)

def fetch_pet(pet):
    img = image.load_img('pet_images/' + pet, target_size=(299, 299))
    return image.img_to_array(img)

img_vector = np.asarray([fetch_pet(pet) for pet in pet_images_fn])

# make model with InceptionV3

base_model = InceptionV3(weights='imagenet', include_top=False, input_shape=(299, 299, 3))
for layer in base_model.layers:
    layer.trainable = False

pool_2d = GlobalAveragePooling2D(name='pool_2d')(base_model.output)
dense = Dense(1024, name='dense', activation='relu')(pool_2d)
predictions = Dense(len(idx_to_labels), activation='softmax')(dense)
model = Model(inputs=base_model.input, outputs=predictions)
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])

# set label to one hot encoding

y = np.zeros((len(labels), len(idx_to_labels)))
for idx, label in enumerate(labels):
    y[idx][label] = 1

model.fit(
    img_vector, y,
    batch_size=128,
    epochs=15,
    verbose=2
)

1 Ответ

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

verbose=2 в model.fit означает, что он напечатает только одну строку после окончания эпохи. Если вы хотите индикатор выполнения, вы должны установить verbose=1.

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