2017-08-01 11 views
0

TensorflowからKerasへの一連の事前訓練済みウェイトをエクスポートします。 問題は、Tensorflowのバッチ正規化レイヤーはベータとガンマのみを訓練可能なウェイトとして埋め込みますが、KerasではMoving_meanとMoving_varianceも持っているということです。 これらの重量をどこから得るのか混乱しています。Kerasのバッチ正規化レイヤーでのMoving_meanとMoving_variance

答えて

1

Try tf.train.NewCheckpointReader最近TFからCNNモデルをKerasに変換しました。移動平均/分散の重みをエクスポートすることに問題はありません。

reader = tf.train.NewCheckpointReader(ckpt_file) 
for key in reader.get_variable_to_shape_map(): 
    path = os.path.join(output_folder, get_filename(key)) 
    arr = reader.get_tensor(key) 
    np.save(path, arr) 
    print("tensor_name: ", key) 

ここで、get_filename()はテンソル名を適切なファイル名に変換する関数です。 (たとえば、スラッシュをアンダースコアに置き換える)

詳細については、full codeを参照してください。

+0

あなたの答えをありがとう。私は 'tf.model_variables()'の中からそれらを取得し、kerasのレイヤーにエクスポートすることができました。 – Monaj