0%

python keras RAdam tutorial and load custom optimizer with CustomObjectScope

RAdam

usage

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import keras
import numpy as np
from keras_radam import RAdam

# Build toy model with RAdam optimizer
model = keras.models.Sequential()
model.add(keras.layers.Dense(input_shape=(17,), units=3))
model.compile(RAdam(), loss='mse')

# Generate toy data
x = np.random.standard_normal((4096 * 30, 17))
w = np.random.standard_normal((17, 3))
y = np.dot(x, w)

# Fit
model.fit(x, y, epochs=5)

use warmup

1
2
3
from keras_radam import RAdam

RAdam(total_steps=10000, warmup_proportion=0.1, min_lr=1e-5)

load custom optimizer

keras load model with custom optimizer with CustomObjectScope

error

when load model with custom optimizer, eg RAdam()

1
model = load_model("resnet50_radam_model.h5")

output error

ValueError: Unknown optimizer: RAdam

solution

1
2
3
4
5
6
7
from keras_radam import RAdam
from keras.utils import CustomObjectScope

with CustomObjectScope({'RAdam': RAdam()}):
best_model_filepath = "./checkpoint/best_model_efnb0.h5"
model = load_model(best_model_filepath)
model.save_weights("./checkpoint/weights_efnb0.h5")

Reference

History

  • 20190912: created.