Pytorch串行训练两个网络

更新时间:2023-07-11 03:54:59 阅读: 评论:0

Pytorch串⾏训练两个⽹络
新生儿干呕RuntimeError: Trying to backward through the graph a cond time, but the buffers have already been freed.
(⼀)我要完成的是,把前⼀个⽹络的输出作为后⼀个⽹络的输⼊。
pytorch⽣⼿……我⼀开始还以为是使⽤了两次loss.backward,需要在第⼀个处保存:loss.backward(retain_graph=True),结果还是⼀直报这个错。
后来发现需要对前⼀个⽹络的输出加'.data',也就是写成'output.data',表⽰取出不带梯度的变量值(⼤概是这个意思(··)و✧)。
(⼆)如果还需要多个Dataloader同时训练呢:
from itertools import cycle
为梦想时刻准备着
for step, tupdata in enumerate(zip(cycle(loader1), loader2)):
战略管理论文data1, labels1, data2, labels2 = tupdata[0][0], tupdata[0][1], tupdata[1][0], tupdata[1][1]
这样使⽤cycle时,将再次重复使⽤最⼩的数据集,注意取出的数据是tuple元组类型。半个馒头
载脂蛋白b(三)
1. GPU中的Variable变量:
a.cuda().data.cpu().numpy()
2. GPU中的tensor变量:
a.cuda().cpu().numpy()
书法名人
赞美志愿者3. CPU中的Variable变量:
a.data.numpy()
4. CPU中的tensor变量:
a.numpy()
总结:
.
cuda()是读取GPU中的数据
.data是读取Variable中的tensor
香酥鸭.cpu是把数据转移到cpu上
.numpy()把tensor变成numpy

本文发布于:2023-07-11 03:54:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1090154.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   需要   取出
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图