python

pytorch中的weight-initilzation用法

2020-06-22
pytorch中的权值初始化 官方论坛对weight-initilzation的讨论 torch.nn.Module.apply(fn) torch.nn.Module.apply(fn) # 递归的调用weights_init函数,遍历nn.Module的submodule作为参数 # 常用来对模型的参数进行初始化 # fn是对参数进行初始化的函数的句柄,fn以nn.Module或者自己定义的nn.Module的子类作为参数 # fn (Module -> None) – function t

解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题

2020-06-22
背景 在公司用多卡训练模型,得到权值文件后保存,然后回到实验室,没有多卡的环境,用单卡训练,加载模型时出错,因为单卡机器上,没有使用DataParallel来加载模型,所以会出现加载错误. 原因 DataParallel包装的模型在保存时,权值参数前面会带有module字符,然而自己在单卡环境下,没有用DataParallel包装的模型权值参数不带module.本质上保存的权值文件是一个有序字典. 解决方法 1.在单卡环境下,用DataParallel包装模型. 2.自己重写Load函数,灵活.

keras的load_model实现加载含有参数的自定义模型

2020-06-22
网上的教程大多数是教大家如何加载自定义模型和函数,如下图 这个SelfAttention层是在训练过程自己定义的一个class,但如果要加载这个自定义层,需要在load_model里添加custom_objects字典,这个自定义的类,不要用import ,最好是直接复制进再训练的模型中,这些是基本教程. ------------------分割线讲重点------------------ 如果直接运行上面的代码,会出现一个init初始化错误,如下图, 再来看看 这个SelfAttention

python安装读取grib库总结(推荐)

2020-06-22
无论安装以下哪种库,强烈建议在新环境下安装,之前在base环境下安装各种报错!!!如何在新环境下安装可参见我之前的总结或网上其他文章. 不推荐方法 1.pygrib pygrib库基于python2.4+.numpy.pyproj.Jasper和GRIB_API,依赖库基于Linux或MacOS,GRIB_API将于2020年6月30日正式被ecCodes取代.因此,不推荐使用pygrib库. 2.GDAL 可于window下安装,安装简单,但是需借助wgrib2查看grib变量所在通道,因此不

TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)

2020-06-22
记录一下安装win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5 之前已经安装过pycharm.Anaconda以及VS2013,因此,安装记录从此后开始 总体步骤大致如下: 1.确认自己电脑显卡型号是否支持CUDA(此处有坑) 此处有坑!不要管NVIDIA控制面板组件中显示的是CUDA9.2.148. 你下载的CUDA不一定需要匹配,尤其是CUDA9.2,最好使用CUDA9.0,我就在此坑摔的比较惨.

Pytorch实现将模型的所有参数的梯度清0

2020-06-22
有两种方式直接把模型的参数梯度设成0: model.zero_grad() optimizer.zero_grad()#当optimizer=optim.Optimizer(model.parameters())时,两者等效 如果想要把某一Variable的梯度置为0,只需用以下语句: Variable.grad.data.zero_() 补充知识:PyTorch中在反向传播前为什么要手动将梯度清零?optimizer.zero_grad()的意义 optimizer.zero_grad()意思

pytorch SENet实现案例

2020-06-22
我就废话不多说了,大家还是直接看代码吧~ from torch import nn class SELayer(nn.Module): def __init__(self, channel, reduction=16): super(SELayer, self).__init__() //返回1X1大小的特征图,通道数不变 self.avg_pool = nn.AdaptiveAvgPool2d(1) self.fc = nn.Sequential( nn.Linear(channel, cha

TensorFlow中如何确定张量的形状实例

2020-06-22
我们可以使用tf.shape()获取某张量的形状张量. import tensorflow as tf x = tf.reshape(tf.range(1000), [10, 10, 10]) sess = tf.Session() sess.run(tf.shape(x)) Out[1]: array([10, 10, 10]) 我们可以使用tf.shape()在计算图中确定改变张量的形状. high = tf.shape(x)[0] // 2 width = tf.shape(x)[1] *

tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例

2020-06-22
升级到tf 2.0后, 训练的模型想转成1.x版本的.pb模型, 但之前提供的通过ckpt转pb模型的方法都不可用(因为保存的ckpt不再有.meta)文件, 尝试了好久, 终于找到了一个方法可以迂回转到1.x版本的pb模型. Note: 本方法首先有些要求需要满足: 可以拿的到模型的网络结构定义源码 网络结构里面的所有操作都是通过tf.keras完成的, 不能出现类似tf.nn 的tensorflow自己的操作符 tf2.0下保存的模型是.h5格式的,并且仅保存了weights, 即通过mod

Python如何实现后端自定义认证并实现多条件登陆

2020-06-22
1.须知 JWT扩展的登录视图,在收到用户名与密码时,也是调用Django的认证系统Auth模型中提供的**authenticate()**来检查用户名与密码是否正确. 我们可以通过修改Django认证系统的认证后端(主要是authenticate方法)来支持登录账号既可以是用户名也可以是手机号. `authenticate(self, request, username=None, password=None, **kwargs)`方法的参数说明: - request 本次认证的请求对象 -

python不同系统中打开方法

2020-06-22
在Linux.Windows.Mac OS的命令行窗口或Shell窗口,执行python命令,启动Python交互式解释器.交互式解释器会等待用户输入Python语句.输入Python语句并回车,解释器会执行语句并输出结果.交互式解释器是学习Python语言比较好的工具,优点是输入Python语句可以立即得到反馈. 在Windows环境下启动交互式解释器 Windows启动Python交互式解释器有两种方式.第一种方式是进入Pyhton的安装目录,直接运行python.exe程序:第二种方式是进

Python 分布式缓存之Reids数据类型操作详解

2020-06-22
1.Redis API 1.安装redis模块 $ pip3.8 install redis 2.使用redis模块 import redis # 连接redis的ip地址/主机名,port,password=None r = redis.Redis(host="127.0.0.1",port=6379,password="gs123456") 3.redis连接池 redis-py使用connection pool来管理对一个redis server的所有连接,避

卸载tensorflow-cpu重装tensorflow-gpu操作

2020-06-22
问题描述:为了把之前的CPU版本的tensorflow卸载,换成GPU版本的tensorflow,经历了一番折腾. BUG1 Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问 看指向的路径,感觉是在安装路径的site-packages中已经存在tensorflow文件夹了,但是执行 pip uninstall tensorflow 却提示没有安装,于是手动删除该文件夹,重新安装,此bug修复. BUG

利用PyTorch实现VGG16教程

2020-06-22
我就废话不多说了,大家还是直接看代码吧~ import torch import torch.nn as nn import torch.nn.functional as F class VGG16(nn.Module): def __init__(self): super(VGG16, self).__init__() # 3 * 224 * 224 self.conv1_1 = nn.Conv2d(3, 64, 3) # 64 * 222 * 222 self.conv1_2 = nn.Co

python为什么会环境变量设置不成功

2020-06-22
学习python编程,首先要配置好环境变量.本文主要讲解python的环境变量配置,在不同版本下如何安装 Windows 打开Python官方下载网站 https://www.python.org/downloads/release/python-370/ x86:表示是32位电脑 x86-64:表示是64位电脑 目前Python版本分为2.x版本和3.x版本.推荐大家使用3.x版本. 设置环境变量,我的电脑->属性->高级系统设置->环境变量,如下 配置 在"变量值"

Pytorch 解决自定义子Module .cuda() tensor失败的问题

2020-06-22
最近在刚从tensorflow转入pytorch,对于自定义的nn.Module 碰到了个问题,即使把模组 modle=Model().cuda(),里面的子Module的parameter都没有被放入cuda,导致输入是torch.cuda.FloatTensor,但是比如CNN的weight却还是torch.FloatTensor (当然最粗暴的方法就是直接在子模组里面都用了 .cuda() 但是问题并不在那,可能是调用子模组的时候,存在某些错误,导致父模组没有把子模组的parameter注

python使用自定义钉钉机器人的示例代码

2020-06-22
1.添加自定义机器人 2.编写python代码请求钉钉机器人所给的webhook 钉钉自定义机器人官方文档 安全方式使用加签的方式: 第一步,把timestamp+"\n"+密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集). 参数 说明 timestamp 当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时 secret 密钥,机器人安全设置页面,加签

pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)

2020-06-22
首先这是VGG的结构图,VGG11则是红色框里的结构,共分五个block,如红框中的VGG11第一个block就是一个conv3-64卷积层: 一,写VGG代码时,首先定义一个 vgg_block(n,in,out)方法,用来构建VGG中每个block中的卷积核和池化层: n是这个block中卷积层的数目,in是输入的通道数,out是输出的通道数 有了block以后,我们还需要一个方法把形成的block叠在一起,我们定义这个方法叫vgg_stack: def vgg_stack(num_conv

在Mac中配置Python虚拟环境过程解析

2020-06-22
如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtualenv 3.配置.bashrc文件,没有的话在根目录"~"下创建一个 cd ~ vim .bashrc 定义Python安装路径(可通过which is python3查询) export VIRTUALENVWRAPPER_PYTHON='/usr/local/bin/python3

Python socket服务常用操作代码实例

2020-06-22
套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作. 1. 实现客户端发送字符,服务器返回大写的字符: 服务器: import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): # 通过类的继承,实现 def handle(self): # 重写父类的handle方法,所有的操作都在此方法中 while True: # 循环,不停的接收从客户端来的数