前提・実現したいこと
tensorflowで作成した3層auto encoderのモデルに対して,重みを.h5, .pickleで保存しております.
この重みを用いて,ある入力に対する中間層(2層目)時点での出力結果を確認したいです.
入力と出力のユニット数は100層(仮),中間層ユニット数は50層(仮)としています.
Kerasの公式ドキュメントを読みましたが,よく理解できませんでした.
https://keras.io/ja/getting-started/faq/#_1
発生している問題・エラーメッセージ
python
1Traceback (most recent call last): 2 File "h5_read.py", line 21, in <module> 3 get_3rd_layer_output = K.function([model.layers[0].input], 4IndexError: list index out of range 5
該当のソースコード
python
1data = pd.read_csv('hogehoge.csv', sep=",", header=None) 2''' 3with open("hogehoge" + ".pickle", mode="rb") as f: 4 data = pickle.load(f) 5''' 6model = Sequential() 7model.load_weights("hogehoge" + ".h5", by_name=True) 8 9print(len((weightdata))) 10for i in str(len((weightdata))): 11 print([len(v) for v in weightdata]) 12 13>> 4 14>>[100, 50, 50, 100] 15 16from keras import backend as K 17 18# with a Sequential model 19get_3rd_layer_output = K.function([model.layers[0].input], 20 [model.layers[3].output]) 21layer_output = get_3rd_layer_output([data])[0] 22
試したこと
pickleファイルの回答の方も試しましたが,うまくいきませんでした.
とにかく公式ドキュメントで開設されている仕組みが理解できず,何をどこに代入すればいいのかわかりません.
漠然とした質問で申し訳ないのですが,よろしくお願いいたします.
あなたの回答
tips
プレビュー