pytorch中网络参数的默认精度
pytorch默认使用单精度float32训练模型,其主要原因为:使用float16训练模型,模型效果会有损失,而使用double(float64)会有2倍的内存压力,且不会带来太多的精度提升,因此默认使用单精度float32训练模型。
由于输入类型不一致导致报错:
PyTorch:expected scalar type Float but found Double
表明代码中网络参数类型不统一。
pytorch如何更改默认单精度float32训练模型,而改为torch.float64对模型进行训练呢?
解决办法:把模型的权重参数数据类型和输入数据类型全部设置为torch.float64。
使用torch.set_default_dtype(torch.float64)把模型参数转化为float64,或使用net = net.double()
输入类型使用tensor.type(torch.float64)将输入数据类型转换为torch.float64。
快去成为你想要的样子!
分类:
PyTorch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2020-06-27 记MongoDB的安装