:私は結果だと思う[2、-1]、初めてので X = np.array([1、2、3])とリターン1 * 2、二度目X = np.array([ - 1、 1、-1])とリターン1 *( - 1)
In [26]: a = np.array([[1, 2, 3], [2, 4, 1], [5, 1, 7]])
In [27]: b = np.array([[1, -1, -1], [1, 1, 1], [-1, 1, -1]])
In [28]: elems = (a, b)
In [29]: alternate = map_fn(lambda x: x[0] * x[1], elems, dtype=tf.int64)
In [30]: alternate.eval()
Out[30]:
array([[ 1, -2, -3],
[ 2, 4, 1],
[-5, 1, -7]])
それは各要素の0次元でテンソルであることがわかります関数に適用されるelems。第三のため
:I 2(結果の形状であると思う(3,2)、第 時間X = 1及びリターン(1、-1)ので、X = 2秒の時間と戻り、-2)、 3回目のx = 3で戻り値(3、-3)。
In [36]: elems = np.array([[1, 2, 3], [4, 5, 1], [1, 6, 1]])
In [37]: alternates = map_fn(lambda x: (x, -x), elems, dtype=(tf.int64, tf.int64))
In [38]: alternates
Out[38]:
(<tf.Tensor 'map_6/TensorArrayStack/TensorArrayGatherV3:0' shape=(3, 3) dtype=int64>,
<tf.Tensor 'map_6/TensorArrayStack_1/TensorArrayGatherV3:0' shape=(3, 3) dtype=int64>)
In [39]: alternates[0].eval()
Out[39]:
array([[1, 2, 3],
[4, 5, 1],
[1, 6, 1]])
In [40]: alternates[1].eval()
Out[40]:
array([[-1, -2, -3],
[-4, -5, -1],
[-1, -6, -1]])
あなたが期待する結果を取得するには、次の
In [8]: elems = np.array([[1], [2], [3]])
In [9]: alternates = map_fn(lambda x: (x, -x), elems, dtype=(tf.int64, tf.int64))
In [10]: sess = tf.InteractiveSession()
In [11]: alternates[0].eval()
Out[11]:
array([[1],
[2],
[3]])
In [12]: alternates[1].eval()
Out[12]:
array([[-1],
[-2],
[-3]])
が、これは、より良いmap_fnを理解する上であなたを助けることができる可能性があります。
公式のGitHubリポジトリをご覧ください – Aditya