model = tf.keras.models.Sequential() model.add( tf.keras.layers.Reshape((28, 28, 1), input_shape=(28, 28)) ) model.add( tf.keras.layers.Conv2D(16, (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=3) loss, accuracy = model.evaluate(X_test, Y_test, verbose=0) predictions = model.predict(X_test)
model.summary() weights = model.get_layer("conv2d_5").get_weights()[0] print(weights.shape) plt.imshow(weights[:,:,0,0]) コード
layer_outputs = [layer.output for layer in model.layers[1:2]] activation_model = Model(inputs=model.input, outputs=layer_outputs) activation_model.summary() コード
自作したcnnモデルの畳み込みフィルタの可視化と畳み込み演算後の特徴マップの可視化を行いたいです。
畳み込みフィルタに関しては,2個目のコードで可視化を行えました。
特徴マップを可視化する方法をお聞きしたいのですが,
3個目のコードで中間層を可視化するモデル(今はconv2D層のみ)を作成しようとしたのですが,下記エラーが発生しました。
どなたかよろしくお願い致します。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-55-1659aa1308fe> in <module> ----> 1 activation_model = Model(inputs=model.input, outputs=layer_outputs) 2 activation_model.summary() ~\Anaconda3\lib\site-packages\keras\legacy\interfaces.py in wrapper(*args, **kwargs) 89 warnings.warn('Update your `' + object_name + '` call to the ' + 90 'Keras 2 API: ' + signature, stacklevel=2) ---> 91 return func(*args, **kwargs) 92 wrapper._original_function = func 93 return wrapper ~\Anaconda3\lib\site-packages\keras\engine\network.py in __init__(self, *args, **kwargs) 92 'inputs' in kwargs and 'outputs' in kwargs): 93 # Graph network ---> 94 self._init_graph_network(*args, **kwargs) 95 else: 96 # Subclassed network ~\Anaconda3\lib\site-packages\keras\engine\network.py in _init_graph_network(self, inputs, outputs, name, **kwargs) 239 # Keep track of the network's nodes and layers. 240 nodes, nodes_by_depth, layers, layers_by_depth = _map_graph_network( --> 241 self.inputs, self.outputs) 242 self._network_nodes = nodes 243 self._nodes_by_depth = nodes_by_depth ~\Anaconda3\lib\site-packages\keras\engine\network.py in _map_graph_network(inputs, outputs) 1432 layer=layer, 1433 node_index=node_index, -> 1434 tensor_index=tensor_index) 1435 1436 for node in reversed(nodes_in_decreasing_depth): ~\Anaconda3\lib\site-packages\keras\engine\network.py in build_map(tensor, finished_nodes, nodes_in_progress, layer, node_index, tensor_index) 1413 1414 # Propagate to all previous tensors connected to this node. -> 1415 for i in range(len(node.inbound_layers)): 1416 x = node.input_tensors[i] 1417 layer = node.inbound_layers[i] TypeError: object of type 'Reshape' has no len() エラーメッセージ ### 該当のソースコード ```ここに言語名を入力 ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー