编程笔记(tensorflow,pytorch)
包括软件的安装与常用模块的使用,以及重要模型的复现
我学数学我骄傲
学生党一枚,求道友
展开
-
Github使用——代码更新
一、定位到仓库cd /G/MYWORK二、初始化git并不知道为什么要初始化,但是在初始化后我添加文件再也没卡过,美滋滋git init三、加载加载所用文件,也可以在add后直接加文件名(可加多个)$ git add .四、 上传$ git commit -m "code"五、查看文件$ git status六、更新报错了,看网上应该跟readme文件有关$ git push -u origin master...原创 2020-06-11 21:28:08 · 201 阅读 · 0 评论 -
Github使用——代码上传
前言最近要联系博导,之前自己写的代码,如果放到博客上太乱,整理上传到GitHub上更加加明了清楚。同时,之前看别人用Github写笔记公式代码都非常整洁。因此,我也想弄一个。嘿嘿一、注册账号GitHub网址:https://github.com/ 注册步骤:应该都会,不说啦 界面:再简单注册完成之后会需要验证你所输入的邮箱才能正常使用你的GitHub。在注册完成之后,完成一些简单的设置之后,你需要创建一个属于自己的库。二、创建存放自己代码的云端库1、找到设置按钮2、填写信.原创 2020-06-09 10:48:56 · 239 阅读 · 0 评论 -
tensorflow使用——(九)训练模型的时候如何指定GPU进行训练
在用tensorflow训练深度学习模型的时候,假设我们在训练之前没有指定GPU来进行训练,则默认的是选用第0块GPU来训练我们的模型,而且其它几块GPU的也会显示被占用。有些时候,我们更希望可以通过自己指定一块或者几块GPU来训练我们的模型,而不是用这种默认的方法。接下来将简单介绍两种简单的方法。我们现有的GPU个数如下所示:1.第一种是通过tf...转载 2020-06-03 14:05:06 · 1553 阅读 · 0 评论 -
tensorflow使用——(六)tfrecord数据操作
前言:为了更加展示tfrecord数据的相关操作,笔者后续又写了一个实践的简单例子进一步解释,具体可以看:https://blog.csdn.net/weixin_42001089/article/details/90236241正文:tfrecord数据文件...转载 2020-06-03 14:00:19 · 668 阅读 · 0 评论 -
tensorflow使用——(八)GPU
一、指定GPU1、tf.ConfigPrototf.ConfigProto一般用在创建session的时候。用来对session进行参数配置with tf.Session(config = tf.ConfigProto(...),...)2、参数#tf.ConfigProto()的参数log_device_placement=True : 是否打印设备分配日志allow_soft_placement=True : 如果你指定的设备不存在,允许TF自动分配设备3、实例 :查看.原创 2020-06-03 14:03:47 · 174 阅读 · 0 评论 -
tensorflow使用——(七)模型保存与加载
一、模型保存1、tf.train.saverimport tensorflow as tf ... #在这里构建网络... #开始保存模型与tf.Session()作为sess: sess.run(tf.global_variables_initializer())#一定要先初始化整个流 #在这里训练网络 ... #保存参数 saver = tf.train.Saver() saver.save(sess,PATH)#PATH就是要保存的路径 2、tf.saved.原创 2020-06-03 14:00:46 · 348 阅读 · 0 评论 -
tensorflow使用(五)——tensorboard
一、代码1、summary operation:tf.scaler_summary:用来添加一些标量,比如 lr,loss,accuracy ,etc tf.image_summary:用来添加一些进入graph的输入图片 tf.histogram_summary:用来统计激活分布,梯度分布,权重分布 tf.audio_summary:2、定义一个op来将所有的summary operation 合并起来merged = tf.merge_all_summaries() 3、使用gr.原创 2020-06-03 13:56:58 · 167 阅读 · 0 评论 -
tensorflow使用——(四)plot可视化
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltdef add_layer(inputs, in_size, out_size, activation_function=None): # add one more layer and return the output of this layer Weights = tf.Variable(tf.random_normal([in_siz...原创 2020-06-03 13:56:15 · 679 阅读 · 0 评论 -
tensorflow使用——(三)网络的简单搭建
一、数据加载1、加载的三种方式Preloaded data: 预加载数据 Feeding: Python产生数据,再把数据喂给后端 Reading from file: 从文件中直接读取2、预加载数据预加载数据的读取方式是直接读取定义好的数据,直接嵌入至Graph,然后将Graph传入Session中运行。当数据量比较大时,Graph的传输会遇到效率问题。Import tensorflow as tf # 设计Graph x1 = tf.constant([2,3,4]) x2原创 2020-06-03 13:55:58 · 252 阅读 · 0 评论 -
tensorflow使用——(二)基本操作
一、计算图Tensorlfow中的计算是通过一个有向图directed graph或则计算图computation graph来实现的。将每一个运算操作operation作为一个节点node,节点之间通过边edge连接。这个计算图描述的数据计算流程用户可以进行相关分支、循环、选择。使用的语言是python、C++、java、Go等。计算图中每一个节点可以有多个输入和输出,每个节点只能描述一种运算操作。所以节点是运算操作的实例化(instance)。在计算图中传递(流动flow)的数据叫张量(tensor原创 2020-06-03 13:54:46 · 264 阅读 · 0 评论 -
tensorflow使用(一)——tensorflow安装
1. 安装用conda install tensorflow 即可,注意,这里的python是3.6。基于 Anaconda 的安装 Anaconda 是一个集成许多第三方科学计算库的 Python 科学计算环境,Anaconda 使用 conda 作为自己的包管理工具,同时具有自己的计算环境,类似 Virtualenv.和 Virtualen...转载 2020-06-02 09:39:31 · 288 阅读 · 0 评论 -
pytorch使用——(十七)GPU运行
一、CPU与GPUCPU(Central Processing Unit, 中央处理器):主要包括控制器和运算器 GPU(Graphics Processing Unit, 图形处理器):处理统一的,无依赖的大规模数据运算二、转换数据类型/设备tensor.to(*args, **kwargs),不执行inplace module.to(*args, **kwargs),执行inplacex = torch.ones((3, 3))x = x.to(torch.float64)x =原创 2020-06-02 08:06:55 · 555 阅读 · 0 评论 -
pytorch使用——(十六)模型保存与加载
1、序列化与反序列化2、PyTorch中的序列化(save)与反序列化(load)torch.save:主要参数为obj:对象;f:输出路径 torch.load:主要参数为f:文件路径;map_location:指定存放位置, cpu or gpu3、保存补充保存整个Module:torch.save(net, path) 保存模型参数:state_dict = net.state_dict();torch.save(state_dict , path)4、断点续训练che.原创 2020-06-02 07:57:01 · 258 阅读 · 0 评论 -
pytorch使用——(十五)BN、LN、IN and GN
一、Why Normalization因为在深度神经网络中,数据在训练过程(前向传播)中会出出现数据尺度和分布的异常。当这些异常累积的一定程度时,就会导致训练困难。二、 常见Normalization1、种类Batch Normalization(BN) Layer Normalization(LN) Instance Normalization(IN) Group Normalization(GN)2、对比相同:不同:均值和方差求取方式三、Layer Nor..原创 2020-06-02 07:39:32 · 759 阅读 · 0 评论 -
pytorch使用——(十四)Hook函数
1、Hook FunctionHook函数机制:不改变主体,实现额外功能,像一个挂件,挂钩,hooktorch.Tensor.register_hook(hook) torch.nn.Module.register_forward_hook torch.nn.Module.register_forward_pre_hook torch.nn.Module.register_backward_hook2、Tensor.register_hook,功能:注册一个反向传播hook函数Hook函原创 2020-06-02 07:22:12 · 667 阅读 · 0 评论 -
pytorch使用——(十三)TensorBoard
1、SummaryWriter,功能:提供创建event file的高级接口class SummaryWriter(object):def __init__(self, log_dir=None, comment='',purge_step=None, max_queue=10,flush_secs=120, filename_suffix=’’)主要属性:• log_dir:event file输出文件夹• comment:不指定log_dir时,文件夹后缀• filename_suf原创 2020-06-02 07:11:10 · 272 阅读 · 0 评论 -
pytorch使用——(十二)学习率调整策略
一、基本概念梯度下降: ???? ????+???? = ???? ???? − LR * ????(???? ???? )学习率(learning rate)控制更新的步伐二、 具体方法1、class _LRSchedulerclass _LRScheduler(object): def __init__(self, optimizer, last_epoch=-1): def get_lr(self): raise NotImplementedErro原创 2020-06-02 06:56:44 · 337 阅读 · 0 评论 -
pytorch使用——(十一)优化器
一、基本概念pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签导数:函数在指定坐标轴上的变化率方向导数:指定方向上的变化率梯度:一个向量,方向为方向导数取得最大值的方向二、基本属性class Optimizer(object): def __init__(self, params, defaults): self.defaults = defaults self.state = defaultdict(di原创 2020-06-02 06:41:02 · 448 阅读 · 0 评论 -
pytorch使用——(十)18种损失函数总结
一、损失函数概念损失函数:衡量模型输出与真实标签的差异class _Loss(Module): def __init__(self, size_average=None, reduce=None, reduction='mean'): super(_Loss, self).__init__() if size_average is not None or reduce is not None: self.red原创 2020-06-02 06:24:17 · 6168 阅读 · 0 评论 -
pytorch使用——(九)池化、线性、激活函数层
一、池化1、nn.MaxPool2d,功能:对二维信号(图像)进行最大值池化nn.MaxPool2d(kernel_size, stride=None,padding=0, dilation=1,return_indices=False,ceil_mode=False)kernel_size:池化核尺寸 stride:步长 padding :填充个数 dilation:池化核间隔大小 ceil_mode:尺寸向上取整 return_indices:记录池化像素索引2、nn.A.原创 2020-06-02 06:23:41 · 352 阅读 · 0 评论 -
pytorch使用——(八)卷积层
一、1d/2d/3d Convolution卷积过程类似于用一个模版去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取。卷积核学习到的是边缘,条纹,色彩这一些细节模式。卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加 卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征。 卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积二、nn.Conv2d功能:对多个二维信号进行二维卷积nn.Conv2d(in_channels,out_c原创 2020-06-02 06:23:16 · 694 阅读 · 0 评论 -
pytorch使用——(七)模型容器Containers
一、网络层容器Containers二、容器之Sequentialnn.Sequential 是 nn.module的容器,用于按顺序包装一组网络层。局哟如下性质:顺序性:各网络层之间严格按照顺序构建 自带forward():自带的forward里,通过for循环依次执行前向传播运算三、容器之ModuleListnn.ModuleList是 nn.module的容器,用于包装一组网络层,以迭代方式调用网络层。ModuleList中的的主要方法:append():在ModuleLi.原创 2020-06-01 21:33:50 · 384 阅读 · 0 评论 -
pytorch使用——(六)模型创建与nn.Module
1、网络模型创建步骤2、代码逻辑3、torch.nn简介4、nn.Module一个module可以包含多个子module;一个module相当于一个运算,必须实现forward()函数;每个module都有8个字典管理它的属性。具体如下:self._parameters = OrderedDict()self._buffers = OrderedDict()self._backward_hooks = OrderedDict()self._forward_hooks.原创 2020-06-01 21:16:02 · 295 阅读 · 0 评论 -
pytorch使用——(五)transforms详解
一、基础知识1、计算机视觉工具包:torchvisiontorchvision.transforms : 常用的图像预处理方法torchvision.datasets : 常用数据集的dataset实现,MNIST,CIFAR-10,ImageNet等torchvision.model : 常用的模型预训练,AlexNet,VGG, ResNet,GoogLeNet等2、常用的图像预处理方法数据中心化、数据标准化、缩放、裁剪、旋转、翻转、填充、噪声添加、灰度变换、线性变换、仿射变换、原创 2020-05-19 18:12:47 · 2888 阅读 · 0 评论 -
ptorch使用——(四)DataLoader与Dataset
一、基础知识1、数据装载(可迭代):1)外层设计:torch.utils.data.DataLoaderDataLoader(dataset,batch_size=1,shuffle=False,sampler=None,batch_sampler=None,num_workers=0,collate_fn=None,pin_memory=False,drop_last=False,t...原创 2020-03-03 22:03:53 · 236 阅读 · 0 评论 -
pytorch使用——(三)autograd自动求导系统与逻辑回归
一、基础知识1、torch.autograd1)torch.autograd.backward(tensors,grad_tensors=None,retain_graph=None,create_graph=False),自动求梯度tensors: 用于求导的张量retain_graph : 保存计算图create_graph : 创建导数计算图,用于高阶求导grad_t...原创 2020-03-03 21:36:13 · 247 阅读 · 0 评论 -
pytorch使用——(二)计算图与动态图机制
一、基础知识1、计算图:1)概念:用来描述运算的有向无环图,由结点和边构成;结点表示数据,如向量,矩阵,张量;边表示运算,如加减乘除卷积等。2)计算图与梯度求导:y = (x+ w) * (w+1),a=x+w,b=w+1。二、动态图: 一种使用特定搭建方式的计算图1)概念:根据计算图搭建方式,可将计算图分为动态图和静态图。2)动态图VS静态图动态图:运...原创 2020-02-24 10:53:02 · 509 阅读 · 0 评论 -
pytroch使用——(一)张量
一、基础知识1、张量概念:多维数组2、Vaiable:用于封装张量(因为需要对张量计算,如求导等,因此封装成一组对象)data:被包装的数据、gard:张量梯度、grad_fn:记录张量所被应用的计算,主要还是用于求导、resquires_grad;是否求导、is_leaf:指示是否是叶子结点,用于构建结构图。注:device:表示张量所在设备,是加速的关键。3、张量创...原创 2020-02-15 12:29:09 · 373 阅读 · 0 评论 -
编程准备——代码纠错本
2020.1.4:问题1:IndexError: list assignment index out of range原因:当data为一个空字典时,直接按索引值向其中添加东西时,会报错,因为空的字典不能直接指定其位置。解决方案如下:data=data.append(unpickle(filename[i])),结果还是报错,因为字典没有append()。解决:data=dict(...原创 2020-01-04 21:50:31 · 835 阅读 · 0 评论 -
编程准备——Keras安装
Keras是Python语言中基于原始深度学习框架Tensorflow或Theano的封装框架。那么如果准备使用Keras首先必须准备安装Tensorflow或Theano,因此本文安装在tensorflow环境中。步骤:1、激活环境:activate tensorflow2、由于Theano需要mingw和libpython的支持,所以首先安装mingw和libpython:cond...原创 2019-11-29 22:20:42 · 409 阅读 · 0 评论 -
编程准备——Pytorch虚拟环境创建与安装(含Torchvision)
前言:本文是基于Anaconda安装的,安装tensorflow一样。整体思路是先在Anaconda Prompt里创建虚拟环境(当然在pycharm里的tem里也行);再cd到文件路径;最后使用pip安装。conda create -n pytorch-cpu python=3.6conda activate pytorch-cpupip install torch-1.1.0-cp36...原创 2019-11-02 07:51:16 · 5127 阅读 · 4 评论