pytorch学习的一些tips(6)

利用GPU进行训练:

1   将网络模型,数据(输入,标注),损失函数三个转移到cuda上,

2   .to(device)

device=torch.device('cuda' if torch.cuda.is_available() else 'cpu)

对于网络模型和loss无需另外赋值,只有数据需要另外赋值


#!/usr/bin/python3 和 #!/usr/bin/env python3 的作用:

  • 作用是"指定由哪个解释器来执行脚本",很多人在系统中同时安装了 Python2 和 Python3, 但是 2 和 3 是不兼容的, 所以执行脚本时必须指定解释器。在"非 Unix-like 系统"中,默认不支持 shebang, 比如 Windows 自带的 Power Shell 不支持 shebang; 
  • #!/usr/bin/env/ python3 表示从 "PATH 环境变量"中查找 python3 解释器的位置, 路径没有被写死, 而是在"环境变量"中寻找 python3 解释器的安装路径, 再调用该路径下的解释器来执行脚本.
  • 大部分 Python 文件不必写 Shebang, 只有被直接执行的文件才有必要加入 Shebang
  • #!/usr/bin/env python
    #coding=utf-8

    为什么要指定字符编码?

    因为 Python 2 默认使用的是 ASCII 编码 (不支持中文), Python 3 默认使用 UTF-8 编码 (万国码, 支持中文).

    所以 Python 2 中为了支持中文, 都会在开头加入 #coding=utf-8 这个声明. 而 Python 3 默认支持 UTF-8 编码, 所以 Python 3 并不需要 #coding=utf-8 声明


成功改写了第一份代码,但是效果没有想象中好,也没有达到论文中的效果,现在在看第二份代码,这份代码的模型框架部分没有第一份代码友好,但是这份代码的架构,或者是代码风格是不一样的,我姑且理解为他做了一个主界面?,有一个main.py用于输入各种参数,这里定义了run_model,我感觉他写的有点乱?,希望这份代码也能尽快读完,还是很想发出论文的!


torch.nn.NLLLOSS:

torch.nn.NLLLOSS通常不被独立当作损失函数,而需要和softmax、log等运算组合当作损失函数。

torch.nn.CrossEntropyLoss相当于softmax + log + nllloss

https://blog.csdn.net/qq_22210253/article/details/85229988


deepcopy:

深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。

浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。


gc.collect:

垃圾回收


torch.cuda.empty_cache():

清空显存缓冲区


fire.Fire:

https://zhuanlan.zhihu.com/p/99629342

fire 可以根据任何 Python 对象自动生成命令行接口,使用Fire最简单的方法是在任何Python程序结束时调用fire.Fire()。 这会将程序的全部内容暴露给命令行。

import fire

def hello(name="World"):
  return 'Hello {name}!'.format(name=name)

if __name__ == '__main__':
  fire.Fire(hello)

我感觉fire相当于print all,打印这一页所有的内容,在terminal中打印,并且可选打印的内容


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值