YAD2K
YAD2K copied to clipboard
retrain_yolo with custom model in Jupyter notebook
I am trying to implement the retrain_yolo.py in Jupyter notebook. Below contains the part of program which is straight forward:
with tf.device('/cpu:0'):
# TODO: Replace Lambda with custom Keras layer for loss.
model_loss = Lambda(
yolo_loss,
output_shape=(1, ),
name='yolo_loss',
arguments={'anchors': anchors,
'num_classes': len(class_names)})([
model.output, boxes_input,
detectors_mask_input, matching_boxes_input])
opt = Adam(lr=0.5e-4, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model = Model(
[model.input, boxes_input, detectors_mask_input,
matching_boxes_input], model_loss)
model.compile(
optimizer=opt, loss={
'yolo_loss': lambda y_true, y_pred: y_pred
})
logging = keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=1, write_graph=True, write_images=True)
checkpoint = ModelCheckpoint("train.h5", monitor='val_loss',
save_weights_only=True, save_best_only=True)
early_stopping = EarlyStopping(monitor='val_loss', min_delta=0, patience=15, verbose=1, mode='auto')
model.fit([image_data, boxes, detectors_mask, matching_true_boxes],
np.zeros(len(image_data)),
validation_split=0.1,
batch_size=32,
epochs=9,
callbacks=[logging])
..........................................after this it gives the following #error......................................................................
ValueError Traceback (most recent call last)
<ipython-input-31-e77e0b516cea> in <module>()
74 model.compile(
75 optimizer=opt, loss={
---> 76 'yolo_loss': lambda y_true, y_pred: y_pred
77 })
78
~\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\engine\training.py in compile(self, optimizer, loss, metrics, loss_weights, sample_weight_mode, weighted_metrics, target_tensors, **kwargs)
602 """
603 loss = loss or {}
--> 604 self.optimizer = optimizers.get(optimizer)
605 self.loss = loss
606 self.loss_weights = loss_weights
~\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\keras\optimizers.py in get(identifier)
766 else:
767 raise ValueError('Could not interpret optimizer identifier: ' +
--> 768 str(identifier))
ValueError: Could not interpret optimizer identifier: <tensorflow.python.keras._impl.keras.optimizers.Adam object at 0x00000000151F8588>