2
張量流中可以做到這種numpy操作嗎?將張量分配給張量流
r[:,t,:] = x
在tensorflow中,我看到一個名爲scatter_nd的東西,但它似乎只對初始維度有效。對於例如,
r[t,:,:] = x
我相信可以寫爲:
scatter_nd(r, [[t]], x)
張量流中可以做到這種numpy操作嗎?將張量分配給張量流
r[:,t,:] = x
在tensorflow中,我看到一個名爲scatter_nd的東西,但它似乎只對初始維度有效。對於例如,
r[t,:,:] = x
我相信可以寫爲:
scatter_nd(r, [[t]], x)
我不認爲它可以很容易使用scatter_nd因爲它是非常難以形成更新來解決它。但是,如果你使用的堆棧和拆散這樣這樣可以比較容易:
In [67]: embd = np.tile(np.expand_dims(np.arange(40).reshape([-1, 10]), axis=2), (1, 1, 4))
In [68]: embd_np = copy.copy(embd)
In [69]: embd_np[:, 2, :] = np.ones([4, 4])
In [70]: embd_tf = tf.stack([j if i != 2 else tf.ones([4, 4], dtype=tf.int64) for i, j in enumerate(tf.unstack(tf.constant(embd), axis=1))], 1).eval()
In [71]: embd_np == embd_tf
你真的想從頭開始創建(初始化只有它的片)張量還是要更新現有的切片張量? – user1735003
是否可以更新張量? – pkumar0
您可以創建一個夾在兩張舊張量之間的一片更新。 – user1735003