tensorflow通过(2d的不同范围)切片列表更改/分配矩阵元素值
我有一个零矩阵(我们可以将其视为图片):tensorflow通过(2d的不同范围)切片列表更改/分配矩阵元素值,tensorflow,matrix,slice,Tensorflow,Matrix,Slice,我有一个零矩阵(我们可以将其视为图片): matrix=tf.zeros(name=“matrix”,shape=(4,5),dtype=tf.int32) 四分体的张量表示这个矩阵上的一些“盒子”(通过左上角和右下角顶点,可能重叠): (第一行、第一列、第二行、第二列) 这里,[第一行:第二行、第一列、第二列]在矩阵上形成一个框 问题是:如何使用切片[第一行:第二行、第一列、第二列]或其他tensorflow函数,将图片上的所有“装箱值”从0分配/更改为1 更新: 输入: matrix=tf.
matrix=tf.zeros(name=“matrix”,shape=(4,5),dtype=tf.int32)
四分体的张量表示这个矩阵上的一些“盒子”(通过左上角和右下角顶点,可能重叠):
(第一行、第一列、第二行、第二列)
这里,[第一行:第二行、第一列、第二列]
在矩阵上形成一个框
问题是:如何使用切片[第一行:第二行、第一列、第二列]
或其他tensorflow函数,将图片上的所有“装箱值”从0
分配/更改为1
更新:
输入:
matrix=tf.zeros(name=“matrix”,shape=(4,5),dtype=tf.int32)
预期输出(通过方框示例(0,2,3,3)
和(2,1,3,3)
):
这可能会有所帮助。但如果没有,你可以澄清你的问题
import tensorflow as tf
tensor = tf.Variable(
[[0, 0, 1, 1, 0],
[0, 0, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0]])
with tf.Session() as sess :
sess.run( tf.global_variables_initializer() )
print(sess.run( tf.assign(tensor[0:1,2:3] , [[9]] )))
输出是这样的
[[0 0 9 1 0]
[0 0 1 1 0]
[0 1 1 1 0]
[0 1 1 1 0]]
如果您将最后一行更改为print(sess.run(tf.assign(张量[0:1,2:4],[9,9]))
[[0 0 9 9 0]
[0 0 1 1 0]
[0 1 1 1 0]
[0 1 1 1 0]]
当我不能确保作业的左侧在形状上与右侧不匹配时,我会得到这个错误。这应该对你有帮助
切片的l值形状[1,2]与r值形状[1,1]不匹配
示例print(sess.run(tf.assign(张量[0:2,2:4],[9,9],[9,9]]))
prints
[[0 0 9 9 0]
[0 0 9 9 0]
[0 1 1 1 0]
[0 1 1 1 0]]
你能给出输入和输出的例子吗?您可以更新您的问题。非常感谢!我通过指定左右值的维度来解决它们的一致性问题。
[[0 0 9 9 0]
[0 0 1 1 0]
[0 1 1 1 0]
[0 1 1 1 0]]
[[0 0 9 9 0]
[0 0 9 9 0]
[0 1 1 1 0]
[0 1 1 1 0]]