-
Notifications
You must be signed in to change notification settings - Fork 29
/
caffe_to_keras.py
24 lines (16 loc) · 638 Bytes
/
caffe_to_keras.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os
import numpy as np
from model.cmu_model import get_testing_model
CAFFE_LAYERS_DIR = "model/caffe/layers"
KERAS_MODEL_FILE = "model/keras/model.h5"
m = get_testing_model()
for layer in m.layers:
layer_name = layer.name
if (os.path.exists(os.path.join(CAFFE_LAYERS_DIR, "W_%s.npy" % layer_name))):
w = np.load(os.path.join(CAFFE_LAYERS_DIR, "W_%s.npy" % layer_name))
b = np.load(os.path.join(CAFFE_LAYERS_DIR, "b_%s.npy" % layer_name))
w = np.transpose(w, (2, 3, 1, 0))
layer_weights = [w, b]
layer.set_weights(layer_weights)
m.save_weights(KERAS_MODEL_FILE)
print("Done !")