import numpy as np import matplotlib.pyplot as plt import os,sys,caffe caffe_root = '~/caffe' os.chdir(caffe_root) sys.path.insert(0,caffe_root+'python') plt.rcParams['figure.figsize'] = (8, 8) plt.rcParams['image.interpolation'] = 'nearest' plt.rcParams['image.cmap'] = 'gray' net = caffe.Net(caffe_root + ‘examples/cifar10/cifar10_full.prototxt‘, caffe_root + ‘examples/cifar10/my_iter_10000.caffemodel‘, caffe.TEST) [(k, v[0].data.shape) for k, v in net.params.items()] def (data, padsize=1, padval=0): data -= data.min() data /= data.max() n = int(np.ceil(np.sqrt(data.shape[0]))) padding = ((0, n ** 2 - data.shape[0]), (0, padsize), (0, padsize)) + ((0, 0),) * (data.ndim - 3) data = np.pad(data, padding, mode=‘constant‘, constant_values=(padval, padval)) data = data.reshape((n, n) + data.shape[1:]).transpose((0, 2, 1, 3) + tuple(range(4, data.ndim + 1))) data = data.reshape((n * data.shape[1], n * data.shape[3]) + data.shape[4:]) plt.imshow(data) plt.axis(‘off‘) weight = net.params["conv1"][0].data print weight.shape show_feature(weight.transpose(0, 2, 3, 1))
|
近期评论