В настоящее время я пытаюсь визуализировать изученные фильтры моего CNN с помощью тензорного потока в python.
Я думаю, что вы подразумеваете под визуализацией активаций определенного слоя? Если это так, вам просто нужно запустить тензор этого слоя для изображения, которое вы хотите, например, так:
import matplotlib.pyplot as plt
# Model definition
...
conv1 = tf.layers.conv2d(inputs=input_layer, filters=32, kernel_size=[5, 5], padding="same", activation=tf.nn.sigmoid)
...
# Getting activations
acts = sess.run(conv1, {input_layer: your_image})
# Visualizing every filters
for i in range(acts.shape[3]):
plt.imshow(acts[:,:,:,i].squeeze())
plt.show()
Если вы используете Estimator, вы можете непосредственно визуализировать эволюцию своих активаций, используя tf.summary.image () в вашей model_fn:
# In model_fn
...
conv1 = tf.layers.conv2d(inputs=input_layer, filters=32, kernel_size=[5, 5], padding="same", activation=tf.nn.sigmoid)
acts_filters = tf.unstack(conv1, axis=3)
for i, filter in enumerate(acts_filters):
tf.summary.image('filter' + str(i), tf.expand_dims(filter, axis=3))