1)PaddlePaddle版本:1.5.12)CPU/GPU:cpu3)系统环境:Mac OS 10.13.6
运行上面的代码,输出如下:
没有输出大于0的部分。然后如果两部分都输出:
报下面的错误
093gszye1#
这个错误跟是否是persistable无关。错误提示中的mask_dim,也就是代码中的作为IfElse条件的cond,按照错误提示,应该是要求cond的dims为1,这里你传入的长度是4。
persistable
mask_dim
IfElse
cond
你想获得tensor中大于0的元素,可以调用relu。
relu
另外,issue中建议尽量贴文字,不要贴图,一是贴图不能被索引,二是我们不能直接拷贝来验证和复现。
t3irkdon2#
谢谢回答,我下次贴代码。我直接用的greater_than得到的cond为什么会维度对应不上呢;还有我只想要大于0的元素,其余的元素不要,如果用relu的话输出还是哪些个元素啊。
x6h2sr283#
greater_than(x, y),会对x和y逐个元素进行比较,返回与x、y长度相同的bool类型tensor,你这个例子里,cond应该是[True, True, False, False]。
greater_than(x, y)
你可以用where获取大于0的元素的位置。
你实际应用中数据的维度是多少?
ne5o7dgx4#
我想问的是为什么greater_than得到的cond,然后用IfElse为什么会报错;数据维度肯定是要任意的啊,我想要什么维度的都可以得到其中所有大于0或者是别的条件的所有值。
icomxhvb5#
这很正常啊,greater_than支持任意维度;IfElse的cond要求dims为[1]。如果greater_than输入数据的dims为[1],那得到的结果就可以用于IfElse。
举个例子,假如输入是2维的,x =[[1, -2, 3], [-1, -2, 3]],那么你要的输出的维度是多少?
dxpyg8gm6#
那如果greater_than输出的cond维度不为1该如何解决啊;对于这个x =[[1, -2, 3], [-1, -2, 3]],我如果要输出大于0的值,期望输出是[1,3,3]这样的
x =[[1, -2, 3], [-1, -2, 3]]
[1,3,3]
inkz8wg97#
目前来看,有以下两种方案:
fxnxkyjh8#
把a 改成这样试一下
a = np.array([[3], [5], [-1], [-3]]).astype(np.float32)
moiiocjp9#
嗯,好使了谢谢 @NHZlX
9条答案
按热度按时间093gszye1#
这个错误跟是否是
persistable
无关。错误提示中的mask_dim
,也就是代码中的作为IfElse
条件的cond
,按照错误提示,应该是要求cond的dims为1,这里你传入的长度是4。你想获得tensor中大于0的元素,可以调用
relu
。另外,issue中建议尽量贴文字,不要贴图,一是贴图不能被索引,二是我们不能直接拷贝来验证和复现。
t3irkdon2#
谢谢回答,我下次贴代码。我直接用的greater_than得到的cond为什么会维度对应不上呢;还有我只想要大于0的元素,其余的元素不要,如果用relu的话输出还是哪些个元素啊。
x6h2sr283#
greater_than(x, y)
,会对x和y逐个元素进行比较,返回与x、y长度相同的bool类型tensor,你这个例子里,cond应该是[True, True, False, False]。你可以用where获取大于0的元素的位置。
你实际应用中数据的维度是多少?
ne5o7dgx4#
我想问的是为什么greater_than得到的cond,然后用
IfElse
为什么会报错;数据维度肯定是要任意的啊,我想要什么维度的都可以得到其中所有大于0或者是别的条件的所有值。
icomxhvb5#
这很正常啊,greater_than支持任意维度;IfElse的cond要求dims为[1]。如果greater_than输入数据的dims为[1],那得到的结果就可以用于IfElse。
举个例子,假如输入是2维的,x =[[1, -2, 3], [-1, -2, 3]],那么你要的输出的维度是多少?
dxpyg8gm6#
那如果greater_than输出的cond维度不为1该如何解决啊;
对于这个
x =[[1, -2, 3], [-1, -2, 3]]
,我如果要输出大于0的值,期望输出是[1,3,3]
这样的inkz8wg97#
目前来看,有以下两种方案:
fxnxkyjh8#
把a 改成这样试一下
moiiocjp9#
嗯,好使了谢谢 @NHZlX