tf.map_fnは、pythonのネイティブマップ関数でサポートされているように複数のテンソルをサポートしていますか?tensorflow map_fnは、複数のテンソルを取ることをサポートしていますか?
a = [1,2,3,4]
b = [17,12,11,10]
print(map(lambda x,y:x+y, a,b)) # ==> [18, 14, 14, 14]
tf.map_fnは、pythonのネイティブマップ関数でサポートされているように複数のテンソルをサポートしていますか?tensorflow map_fnは、複数のテンソルを取ることをサポートしていますか?
a = [1,2,3,4]
b = [17,12,11,10]
print(map(lambda x,y:x+y, a,b)) # ==> [18, 14, 14, 14]
ソースコードは、この関数は一つだけelemsテンソルを取ることを示しています
def map_fn(fn, elems, dtype=None, parallel_iterations=10, back_prop=True,
swap_memory=False, name=None):
私は、任意の*と**のパラメータが表示されません。
ネイティブないが、ここではそれを実現し、迅速機能です:今日のよう
def map(fn, arrays, dtype=tf.float32):
# assumes all arrays have same leading dim
indices = tf.range(tf.shape(arrays[0])[0])
out = tf.map_fn(lambda ii: fn(*[array[ii] for array in arrays]), indices, dtype=dtype)
return out
# example: batch affine tranformation
x = tf.random_normal([4,5,6])
M = tf.random_normal([4,6,10])
b = tf.random_normal([4,10])
f = lambda x0,M0,b0: tf.matmul(x0,M0) + b0
batch_y = map(f, [x,M,b])
これは[投稿時に既に間違っていました](https://github.com/tensorflow/tensorflow/blob/2939f53ea2d5dc9de018d9ad64a3ac03d03d4925/tensorflow/python/ops/functional_ops.py#L213)。不必要に巻き込まれてしまいますので、下の答えをupvoteしてください。 – LucasB
、私はmap_fnがドキュメントがいることを言うように2つのテンソルを取るように強化されていることを確認 - 「elems:テンソルまたは(可能であれば入れ子にされた)テンソルのシーケンスであり、それぞれが最初の次元に沿ってアンパックされます。結果のスライスのネストされたシーケンスはfnに適用されます。 この例(numpy形式で示されています)でも、2つのテンソルがかかることがわかります。私はここにそれをコピーしています。
elems = (np.array([1, 2, 3]), np.array([-1, 1, -1]))
alternate = map_fn(lambda x: x[0] * x[1], elems, dtype=tf.int64)
# alternate == [-1, 2, -3]
私もそう思います。ちょうどいくつかの確認が必要でした。 –
@ADasテンソルなので、どんな形のベクトルでも構いません。 1テンソルで十分でしょう。 –