训练gan网络,执行g网络的 loss.backward() 报错,前面更新d网络参数时没问题啊
已经打印检查过输入数据的形状,没问题
因该也不是summary里第二条提示的原因,这个retain_graph=True应该是框架维护的吧。我以前地gan更新多个模型参数也没设过这个啊
哪位大佬能提供个解决这种报错的思路?
hint里提示输入输出的empty是中间计算步骤导致的么
问题解决了,是Paddel张量重用导致的
我在前面判别器训练时用过一个Paddle的张量,后面的生成器训练又用了了这个张量,但正如报错提示所说,这个张量是无法直接重用的。后面我又用to_variable() 转了一个就ok了
但是我仍然不知道如何在代码里重用这些张量,报错给的是C++底层实现的。
所以是fluid.data不能重用是吗
我一直把data看成是一个容器
不能直接重用。我觉得可能是为了节省资源给及时释放了,或是直接在data的内存空间上进行的张量运算。
应该可以重用,但我不知道在Paddle的python代码中怎么设置
这种C++的报错也不知道怎么查文档
静态图可以。
我看到tf的代码,有个reuse参数,paddle的不知道参数怎么设
静态图是怎么设置的?
有参数名或函数名我就可以查查文档了
静态图我一般3个Program
start_prog = fluid.default_startup_program()
main_prog = fluid.default_main_program()
test_prog = main_prog.clone(for_test=True)
他们是可以共享fluid.data的
看来机制完全不一样啊~不一样
我也得去看看2.0-alpha版本了,不然要跟不上
有些问题的答案就在文档里~~
比如这个张量重用问题
已经打印检查过输入数据的形状,没问题
因该也不是summary里第二条提示的原因,这个retain_graph=True应该是框架维护的吧。我以前地gan更新多个模型参数也没设过这个啊
哪位大佬能提供个解决这种报错的思路?
hint里提示输入输出的empty是中间计算步骤导致的么
问题解决了,是Paddel张量重用导致的
我在前面判别器训练时用过一个Paddle的张量,后面的生成器训练又用了了这个张量,但正如报错提示所说,这个张量是无法直接重用的。后面我又用to_variable() 转了一个就ok了
但是我仍然不知道如何在代码里重用这些张量,报错给的是C++底层实现的。
所以是fluid.data不能重用是吗
我一直把data看成是一个容器
不能直接重用。我觉得可能是为了节省资源给及时释放了,或是直接在data的内存空间上进行的张量运算。
应该可以重用,但我不知道在Paddle的python代码中怎么设置
这种C++的报错也不知道怎么查文档
静态图可以。
我看到tf的代码,有个reuse参数,paddle的不知道参数怎么设
静态图是怎么设置的?
有参数名或函数名我就可以查查文档了
静态图我一般3个Program
start_prog = fluid.default_startup_program()
main_prog = fluid.default_main_program()
test_prog = main_prog.clone(for_test=True)
他们是可以共享fluid.data的
看来机制完全不一样啊~不一样
我也得去看看2.0-alpha版本了,不然要跟不上
有些问题的答案就在文档里~~
比如这个张量重用问题