前提・実現したいこと
PythonとKerasによるディープラーニングを読みながら勉強しています。
CNNの重みの可視化を行いたい。
発生している問題・エラーメッセージ
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
重みが上手く格納されない
エラーメッセージ
該当のソースコード
conv2d_25のフィルタ
import matplotlib.pyplot as plt
plt.imshow(generate_pattern('conv2d_25', 0))
plt.show()
import matplotlib.pyplot as plt
plt.imshow(generate_pattern('conv2d_28', 0))
plt.show()
import matplotlib.pyplot as plt
plt.imshow(generate_pattern('conv2d_28', 1))
plt.show()
layers = ['conv2d_25', 'conv2d_26', 'conv2d_27', 'conv2d_28' ]
for layer_name in layers:
size = 64
margin = 5
# 結果を格納
results = np.zeros((8 * size + 7 * margin, 8 * size + 7 * margin, 3))
for i in range(8): # グリッドの行を処理
for j in range(8): # グリッドの列を処理
filter_img = generate_pattern(layer_name, i + (j * 8), size=size)# filter i + (j * 8)
の生成
# (i, j)
に結果を配列
horizontal_start = i * size + i * margin
horizontal_end = horizontal_start + size
vertical_start = j * size + j * margin
vertical_end = vertical_start + size
results[horizontal_start: horizontal_end, vertical_start: vertical_end, :] = filter_img
表示
plt.figure(figsize=(10, 10)) plt.imshow(results) plt.show()
python
試したこと
個別では表示できるのですがランダムにいくつか表示しようとすると
resultsに格納されない
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。