当前位置: 首页 > news >正文

2.11知识点整理(关于pycharm,python,pytorch,conda)

  1. pycharm 设置anaconda环境:
    1. File -> Settings->选择左侧的project xxx
    2. 再选择打开Project Interpreter页->选择add添加解释器->添加Anaconda中Python解释器(Anaconda安装目录下的python.exe) (选择existing environment ,然后选择路径(路径可以通过在终端中输入conda info -e查看各个虚拟环境的路径,找到对应虚拟环境的python.exe选择即可))
  2. python:
    1. python中对象后加括号调用实际调用的是所属类的__call__方法
    2. python 中两个*表示打散了
    3. 装饰器由近及远执行
    4. python中的构造函数:__new__,析构函数:__del__
    5. 全局变量的使用:
      i=1
      def f():    global ii= 2
  3. conda重置base环境:conda list --revisions(可以看到之前的版本选择回滚到某一版本),如果重置清空,则返回0版本即可:conda install --revision 0
  4. pytorch :
    1. model设置不同模式:
      1. model.eval(),不启用 BatchNormalization 和 Dropout。此时pytorch会自动把BN和DropOut固定住,不会取平均,而是用训练好的值。不然的话,一旦test的batch_size过小,很容易就会因BN层导致模型performance损失较大
      2. model.train() :启用 BatchNormalization 和 Dropout。 在模型测试阶段使用model.train() 让model变成训练模式,此时 dropout和batch normalization的操作在训练q起到防止网络过拟合的问题。
    2. model.train(),model.eval(), with torch.no_grad():
      1. model.train():
        1. 在train模式下,dropout网络层会按照设定的参数p设置保留激活单元的概率(保留概率=p);
        2.  batchnorm层会继续计算数据的mean和var等参数并更新
      2. model.eval():
        1. 在PyTorch中进行validation时,会使用model.eval()切换到测试模式
        2. model.eval()主要用于通知dropout层和batchnorm层在train和val模式间切换。
        3. 在val模式下,dropout层会让所有的激活单元都通过,而batchnorm层会停止计算和更新mean和var,直接使用在训练阶段已经学出的mean和var值
        4. 该模式不会影响各层的gradient计算行为,即gradient计算和存储与training模式一样,只是不进行反传(backprobagation)。
      3. 使用 with torch.no_grad()
        1. 主要是用于停止autograd模块的工作,以起到加速和节省显存的作用,具体行为就是停止gradient计算,从而节省了GPU算力和显存,但是并不会影响dropout和batchnorm层的行为。
        2. 如果不在意显存大小和计算时间的话,仅仅使用model.eval()已足够得到正确的validation的结果;而with torch.no_grad()则是更进一步加速和节省gpu空间(因为不用计算和存储gradient),从而可以更快计算,也可以跑更大的batch来测试。
    3. 强行改变维度的例子:
      if mel_outputs.size()[1]!=tts_seqs.size()[1]:b_size=tts_seqs.size()from torchvision.transforms import Resize torch_resize = Resize([b_size[1],b_size[2]]) # 定义Resize类对象,只能指定修改最后的两个维度,可以借助transpose巧妙使用mel_outputs = torch_resize(mel_outputs)mel_outputs_postnet = torch_resize(mel_outputs_postnet)
http://www.lryc.cn/news/2816.html

相关文章:

  • Linux服务器开发-2. Linux多进程开发
  • Excel中缺失数据值的自动填充
  • 路由器刷固件
  • leetcode: Two Sum II - Input Array is Sorted
  • STL——list
  • 实战打靶集锦-004-My-Cmsms
  • c++代码实现我的世界(14)
  • RMQ--区间最值问题(在更)
  • 一篇文章搞懂Cookie
  • 深入解读.NET MAUI音乐播放器项目(二):播放内核
  • 4.SpringWeb
  • C++中的枚举与位域
  • 第19章 MongoDB Limit与Skip方法教程
  • 进程间通信——消息队列
  • OpenMMLab 实战营打卡 - 第 7 课
  • MAC Boook打印长图
  • web3:区块链共识机制系列-POS(Proof of Stake)股权证明算法
  • Linux fork()系统调用流程解析
  • 自定义软件帮助文档(qt assistant实现)
  • ESP32设备驱动-GPIO外部中断
  • 【安全】nginx反向代理+负载均衡上传webshel
  • 华为OD机试 - 单词接龙(Python)| 真题,思路,知识点
  • [ 系统安全篇 ] window 命令禁用用户及解禁方法
  • Https 协议超强讲解(二)
  • C语言的程序环境和预处理详解
  • 3.JUC【Java面试第三季】
  • Linux防火墙(7)
  • 2.11整理(2)(主要关于teacher forcing)
  • 亿级高并发电商项目-- 实战篇 --万达商城项目 三(通用模块、商品服务模块、后台API模块、IDEA忽略文件显示等开发工作
  • IDEA下java程序的调试(简易实例图示版)