kerasのチュートリアルでAEの勉強中です.
圧縮したデータの値(中間層の値)を見ようとしたのですが,どうすれば見れるのかわかりません.
モデルのコード
ここのencodedの値を見たいです.
#モデルの生成 input_img = Input(shape=(100, 100, 3)) # adapt this if using `channels_first` image data format x = Conv2D(16, (10, 10), padding='same')(input_img) x = BatchNormalization()(x) x = Activation('relu')(x) x = MaxPooling2D((2, 2), padding='same')(x) x = Conv2D(8, (10, 10), padding='same')(x) x = BatchNormalization()(x) x = Activation('relu')(x) x = MaxPooling2D((2, 2), padding='same')(x) x = Conv2D(8, (10, 10), padding='same')(x) x = BatchNormalization()(x) x = Activation('relu')(x) x = MaxPooling2D((5, 5), padding='same')(x) x = Flatten()(x) encoded = Dense(20, activation='sigmoid')(x) x = Dense(200, activation='sigmoid')(encoded) x = Reshape((5, 5, 8))(x) # at this point the representation is (4, 4, 8) i.e. 128-dimensional x = Conv2D(8, (10, 10),padding='same')(x) x = BatchNormalization()(x) x = Activation('relu')(x) x = UpSampling2D((5, 5))(x) x = Conv2D(8, (10, 10),padding='same')(x) x = BatchNormalization()(x) x = Activation('relu')(x) x = UpSampling2D((2, 2))(x) x = Conv2D(16, (10, 10),padding='same')(x) x = BatchNormalization()(x) x = Activation('relu')(x) x = UpSampling2D((2, 2))(x) decoded = Conv2D(3, (10, 10), activation='sigmoid', padding='same')(x) autoencoder = Model(input_img, decoded) autoencoder.compile(optimizer='adam', loss='mean_squared_error')
試したこと
①
autoencoder.save_weights('autoencoder0730.json') from keras.models import model_from_json json_string = open('autoencoder0730.json', 'r' ,encoding="utf-8").read() data = json.load(json_string) print(data)
エラー
utf-8以外の文字は無視するようなコードも書いてみましたがダメでした.
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
②
https://keras.io/ja/getting-started/faq/#_7
中間レイヤーの出力を得るには?というトピックがあるのですが,自分のコードに合うように書き直す方法がわかりません.
回答1件
あなたの回答
tips
プレビュー