CNN ではなく、ただ単に配列を最大値で pooling したいと考え、その方法を探しました。
最初は numpy や scipy にあるだろうと簡単に考えていたのですが、見つけることができず。
最終的には、tensorflow の max_pooling を利用しました。このような感じ↓
******************************************
In [1]:
import numpy as np
from scipy.ndimage.filters import maximum_filter
import tensorflow as tf
In [2]:
x1=np.array([[0,1,2,3],[8,9,10,11],[4,5,6,7],[15,14,13,12]])
x1
Out[2]:
In [3]:
x = x1.reshape([1, 4, 4, 1])
x
Out[3]:
In [4]:
x.shape
Out[4]:
In [5]:
maximum_filter(x1,size=[2,2])
Out[5]:
In [7]:
pool=tf.nn.max_pool(x, ksize=[1, 2, 2,1], strides=[1, 2, 2, 1], padding='SAME')
se = tf.Session()
pool = se.run([pool])
np.array(pool).reshape([1,2,2])
Out[7]:
0 件のコメント:
コメントを投稿