YAD2K icon indicating copy to clipboard operation
YAD2K copied to clipboard

retrain_yolo with custom model in Jupyter notebook

Open akssieg opened this issue 6 years ago • 0 comments

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>

akssieg avatar Apr 17 '18 14:04 akssieg