在fluid下增op时,设置输入的属性,有AsDuplicable,可以接收vector tensor的输入,但每张卡上的输入都一样,如何设置每张卡上接收不一样的vector tensor呢?
Q
[PaddlePaddle/Paddle]在fluid下增op时,设置输入的属性,有AsDuplicable,可以接收vector tensor的输入,但每张卡上的输入都一样,如何设置每张卡上接收不一样的vector tensor呢?
2
请提出你的问题 Please ask your question
A
回答
0
可以将代码贴出来吗,看一下具体情况
8
我希望这几个圈出来的输入是vector tensor的,没设置AsDuplicable的话,会告诉我只能接收tensor类型输入。但如果我设置了AsDuplicable,多卡跑的代码的时候,1号卡的输入跟0号卡的输入一样,实际是不一样的
2
对于分布式来说,Op 的输入内容不一样,应该是在 Op 外部决定接收内容是否不一样的。你是准备在这个 op 内部做分布式吗?还是外部?
7
我是在外部做了分布式的,并且我在模型热启,调用set_state_dict()后,查看模型的state dict,参数加载的是分布式的,但是到了调用这个新增的op的时候,我打印传入的参数,发现0号卡跟1号卡是一样的
8
那你在调用这个op之前打印一下?
6
那你在调用这个op之前打印一下? 就是在调用这个OP之前打印的,发现两张卡的参数一样
5
那这个跟 op 没关系了。查一下为什么送到 Op 之前预期是不一样的,反而一样。
换句话说,你想问的问题和你实际想问的不符。
2
好的,我再看下。还想问下AsDuplicable,这个设置的是什么呢?
2
这个是 fluid op 的写法,意思代表着这输入是可选的,可以传,可不传。不传他的 tensor 的数据指针就是 null
9
可传可不传不是AsDispensable这个设置的吗
4
看错了。
AsDuplicable 就是说这个可以重复,输入可能是个vector tensor AsDispensable 就是optional,这个参数可有可无
8
好的好的,谢谢。那个传入参数的问题确实是我外部代码的问题,感谢~