参考:https://www.jianshu.com/p/aee6a3d72014

    # 网络,netg为生成器,netd为判别器
netg, netd = NetG(opt), NetD(opt)
# 把所有的张量加载到CPU中
map_location = lambda storage, loc: storage
# 把所有的张量加载到GPU 1中
#torch.load('tensors.pt', map_location=lambda storage, loc: storage.cuda(1))
#也可以写成:
#device = torch.device('cpu')
#netd.load_state_dict(t.load(opt.netd_path, map_location=device))
#或:
#netd.load_state_dict(t.load(opt.netd_path))
#netd.to(device)
if opt.netd_path: #是否指定训练好的预训练模型,加载模型参数
netd.load_state_dict(t.load(opt.netd_path, map_location=map_location))
if opt.netg_path:
netg.load_state_dict(t.load(opt.netg_path, map_location=map_location))
netd.to(device)
netg.to(device) # 定义优化器和损失,学习率都默认为2e-4,beta1默认为0.5
optimizer_g = t.optim.Adam(netg.parameters(), opt.lr1, betas=(opt.beta1, 0.999))
optimizer_d = t.optim.Adam(netd.parameters(), opt.lr2, betas=(opt.beta1, 0.999))
criterion = t.nn.BCELoss().to(device) # 真图片label为1,假图片label为0
# noises为生成网络的输入
true_labels = t.ones(opt.batch_size).to(device)
fake_labels = t.zeros(opt.batch_size).to(device)
fix_noises = t.randn(opt.batch_size, opt.nz, 1, 1).to(device)#opt.nz为噪声维度,默认为100
noises = t.randn(opt.batch_size, opt.nz, 1, 1).to(device) #AverageValueMeter测量并返回添加到其中的任何数字集合的平均值和标准差,
#对度量一组示例的平均损失是有用的。
errord_meter = AverageValueMeter()
errorg_meter = AverageValueMeter()

再加载预训练模型时,最好指定map_location。因为如果程序之前在GPU上运行,那么模型就会被存为torch.cuda.Tensor,这样加载时会默认将数据加载至显存。如果运行该程序的计算机中没有GPU,加载就会报错,故通过指定map_location将Tensor默认加载入内存(CPU),待有需要再移至显存

最新文章

  1. Oracle安装时OracleMTSRecoveryService找不到
  2. Yii Uploadify批量上传
  3. elasticsearch rpm 安装
  4. onreadystatechange()事件
  5. AH00098 pid file overwritten
  6. itellyou MSDN, 我告诉你 win7系统工具等
  7. 一个奇怪的网络故障 默认网关为0.0.0.0(Windows)
  8. react native web
  9. JSON对象与JSON数组的长度和遍历方法
  10. PHP学习笔记三十五【Try】
  11. 浅谈localStorage本地存储
  12. jquery结合Highcharts插件实现动态数据仪表盘图形化显示效果
  13. RunLoop学习总结
  14. 基于visual Studio2013解决算法导论之001插入排序
  15. Jenkins(两)
  16. mfc---单文档工程添加消息响应
  17. 导出Mysql数据库中的数据
  18. 编译期类型检查 in ClojureScript
  19. SQL性能分析之执行计划
  20. SQL练习题-50道SQL练习题及答案与详细分析

热门文章

  1. 【ansible】密钥免密登陆使用重点
  2. 每日一题-——LeetCode(486) 预测赢家
  3. Kubernetes日志采集
  4. js 面向对象之构造器与工厂函数
  5. Java8新特性--CompletableFuture
  6. go语言开发IDE
  7. jquery检测屏幕宽度并跳转页面
  8. POJ-2065-SETI(高斯消元)
  9. jq导航
  10. MongoDB Wiredtiger存储引擎实现原理