model = tf.keras.models.Sequential() model.add( tf.keras.layers.Reshape((28, 28, 1), input_shape=(28, 28)) ) model.add( tf.keras.layers.Conv2D(8, (5, 5), padding='same', activation='relu' )) model.add( tf.keras.layers.Conv2D(8, (5, 5), padding='same', activation='relu' )) model.add( tf.keras.layers.MaxPooling2D(pool_size=(2,2)) ) model.add( tf.keras.layers.Flatten() ) model.add( tf.keras.layers.Dense(2, activation='softmax') ) model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy']) model.fit(x_train, y_train, batch_size=256, epochs=10) loss, accuracy = model.evaluate(X_test, Y_test, verbose=0) predictions = model.predict(X_test) コード
layer_outputs = [layer.output for layer in model.layers[1:3]] activation_model = Model(inputs=model.input, outputs=layer_outputs) activation_model.summary() activations = activation_model.predict(X_test) im=activations[0,:,:,0] print(im) ``` ``` --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-174-e5532a1630cb> in <module> 6 activations = activation_model.predict(X_test) 7 ----> 8 im=activations[0,:,:,0] 9 print(im) TypeError: list indices must be integers or slices, not tuple ``` 上記のコードで自作したcnnモデルの畳み込み処理後の特徴マップを見たいと思い, 下記コードで中間層だけのモデルを構築し,特徴マップを可視化しようとしました。 layer_outputs = [layer.output for layer in model.layers[1:3]]の部分の3→2にすれば, 畳み込み1層目の部分までの中間層のモデルが構築でき, 畳み込み1層目後の特徴マップを可視化することができるのですが, 上記のコードで畳み込み2層目後の特徴マップを取得したいと考えております。 どなたかよろしくお願い致します。 ちなみに下のコードが畳み込み1層目後の特徴マップの可視化です。 ``` from tensorflow.keras.models import Model layer_outputs = [layer.output for layer in model.layers[1:2]] activation_model = Model(inputs=model.input, outputs=layer_outputs) activations = activation_model.predict(X_test) print(activations.shape) 結果 (867, 28, 28, 8) コード ```
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。