def testplot_p4(im=None, r=0):
if im is None:
im = np.zeros((5, 5), dtype='float32')
im[0:5, 1] = 1.
im[0, 1:4] = 1.
im[2, 1:3] = 1.
from groupy.gfunc.z2func_array import Z2FuncArray
from groupy.garray.C4_array import C4Array
def rotate_z2_func(im, r):
imf = Z2FuncArray(im)
rot = C4Array([r], 'int')
rot_imf = rot * imf
return rot_imf.v
im = rotate_z2_func(im, r)
filter1 = np.array([[-1., 0., 1.],
[-2., 0., 2.],
[-1., 0., 1.]]).astype(np.float32)
filter2 = rotate_z2_func(filter1, 1)
filter3 = rotate_z2_func(filter1, 2)
filter4 = rotate_z2_func(filter1, 3)
from chainer.functions import Convolution2D
from chainer import Variable
im = im.astype(np.float32)
pad = 2
imf1 = Convolution2D(in_channels=1, out_channels=1, ksize=3, bias=0., pad=pad, initialW=filter1)(
Variable(im[None, None])).data[0, 0]
imf2 = Convolution2D(in_channels=1, out_channels=1, ksize=3, bias=0., pad=pad, initialW=filter2)(
Variable(im[None, None])).data[0, 0]
imf3 = Convolution2D(in_channels=1, out_channels=1, ksize=3, bias=0., pad=pad, initialW=filter3)(
Variable(im[None, None])).data[0, 0]
imf4 = Convolution2D(in_channels=1, out_channels=1, ksize=3, bias=0., pad=pad, initialW=filter4)(
Variable(im[None, None])).data[0, 0]
return im, np.r_[[imf1, imf2, imf3, imf4]]
评论列表
文章目录