深度学习
不一样的等待12305
放下浮躁,平心静气,踏踏实实的前行
展开
-
清华源指定版本安装pytorch以及和torchvision的版本对应关系
使用清华源指定版本安装pytorch:python -m pip install torch==0.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepytorch和torchvision对应关系:原创 2021-02-23 19:34:34 · 1875 阅读 · 0 评论 -
pytorch中的pack_padded_sequence和pad_packed_sequence用法
pack_padded_sequence是将句子按照batch优先的原则记录每个句子的词,变化为不定长tensor,方便计算损失函数。pad_packed_sequence是将pack_padded_sequence生成的结构转化为原先的结构,定长的tensor。其中test.txt的内容As they sat in a nice coffee shop, he was too nervous to say anythingand she felt uncomfortable. Suddenl原创 2020-09-28 10:13:31 · 436 阅读 · 0 评论 -
目标检测系列:yolov1解析
接触目标检测一段时间,回过头来总结一下看过的论文。深度学习听起来很高大上,其实就只有两种问题,1. 分类问题, 2.回归问题,目标检测可以说是两种问题的结合。学过深度学习的人上手的第一个代码应该就是手写数字的分类,也就是对图像的分类问题,目标检测第一个任务也就是分类。看下面这张图,yolov1就是在图像上画大量的默认框,这些框足以圈住所有的物体,如图中,加粗的边框包住了狗,汽车和自行车。我们对...原创 2020-03-11 01:12:04 · 370 阅读 · 0 评论 -
tf.assign_add()和+区别, tf.identify
tf.assign_add()相当于将图上的点a进行加法运算,然后将结果赋值给节点a,这样图上只有一个节点,如下图所示,最后的所有值都会流回variablea = tf.Variable(3,name='a')op = tf.assign_add(a,1)b = tf.assign_add(op, 1)tf.summary.scalar('a', a)tf.summary.scalar...原创 2020-01-06 20:36:03 · 1963 阅读 · 0 评论 -
tensorflow lstm 详解
这里我们解释一下tf.nn.rnn_cell.BasicLSTMCell(),tf.nn.rnn_cell.MultRnnCell(),tf.nn.dynamic_rnn()的用法。1 tf.nn.rnn_cell.BasicLSTMCell()__init__( num_units, forget_bias=1.0, state_is_tuple=True, ...原创 2019-12-03 20:33:43 · 1064 阅读 · 0 评论 -
lstm num_units 参数理解
前言关于LSTM原理: http://colah.github.io/posts/2015-08-Understanding-LS...转载 2019-10-13 16:50:47 · 2334 阅读 · 0 评论 -
查看tensorflow的ckpt文件节点信息
import osfrom tensorflow.python import pywrap_tensorflow checkpoint_path = os.path.join(path)# Read data from checkpoint filereader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)var_to...原创 2019-10-12 13:24:48 · 591 阅读 · 0 评论 -
refinedet 翻译
摘要对于目标检测,两阶段方法(faster rcnn)原创 2019-09-16 20:07:20 · 339 阅读 · 0 评论 -
L2 normalization和L1,L2 regulation
L2 Normalization第二种Normalization对于每个样本缩放到单位范数(每个样本的范数为1),主要有L1-normalization(L1范数)、L2-normalization(L2范数)等Normalization主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是使得每个处理后样本的p-范数(比如l1-norm,l2-norm)等于1...原创 2019-09-18 12:19:46 · 5585 阅读 · 2 评论 -
tensorflow 常用函数和需要注意的地方
文章目录1 tf.add_to_collection2 集合3 tf.squeeze4 tf.meshgrid5 tf.slice()6 tf.where()7 输出tensorflow ckpt文件节点名8 tf.image.crop_and_resize()9 tensorflow关于"=="的坑10 tensorflow 常用三种优化器tf.train.GradientDescentOpti...原创 2019-09-19 20:57:51 · 413 阅读 · 0 评论 -
tesorflow 常用函数和需要注意的地方 (2)
文章目录11 tf.nn.dropout12 tf.rank13 tf.Gradient14 tf.stop_gradient15 tf.reduce_prob16 tf.unique17 tf.SarseTensor 类18 tf.boolean_mask19 关于bn层20 tf.GraphKeys.UPDATE_OPS21 tf.nn.normalize22 权重衰减(weight deca...原创 2019-09-19 20:58:54 · 287 阅读 · 0 评论 -
tf.image模块文档解读
1. tf.image.adjust_brightnesstf.image.adjust_brightness( image, delta)image是RGB图片,numpy,或者tensordelta 在[0,1)之间返回: 一个tensor,维度和输入的图片一样这是一个方便的方法,可以将RGB图像转换为浮动表示,调整它们的亮度,然后将它们转换回原始数据类型。如...原创 2019-09-27 18:14:38 · 500 阅读 · 0 评论 -
tensorflow 数据类型
tensorflow中的数据如果想进行四则运算,必须是同一类型的,比如tf.int32,必须和tf.int32进行计算,而不可以和tf.int64, tf.float32, tf.float64进行计算,而且两个tf.int8,tf.int16,tf.int32进行除法运算时,结果会变成tf.float32, tf.float32, tf.float64,下面进行代码验证a = tf.const...原创 2019-09-29 16:21:14 · 321 阅读 · 0 评论 -
目标检测系列:FPN(feature pyramid networks)
1. 前景知识sppNet(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)论文链接:sppnetsppnet的提出是为了解决rcnn固定输入造成精度下降的问题。我们给网络配上一个叫做“空间金字塔池化”(spatial pyramid pooling,)的池化策略以消除上述限制。这个...原创 2019-09-08 11:25:53 · 745 阅读 · 0 评论 -
图像平滑处理
1. 平滑处理平滑处理也成模糊处理,是一种简单且使用频率很高的图像处理方法。平滑处理的用处有很多,最常见的是用来减少图像上的噪点或者市镇。在涉及到降低图像分辨率时,平滑处理是非常好用的方法。2. 图像滤波与滤波器图像滤波即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。消除图像中的噪声成...原创 2019-09-04 10:26:58 · 2914 阅读 · 1 评论 -
常用的激活函数总结
激活函数名表达式导数表达式sigmoidf(x)=11+e−x\frac{1}{1+e^-x}1+e−x1f’(x)=f(x)(1-f(x))Tanhf(x) = tanh(x) = ex−e−xex+e−x\frac{e^x-e^-x}{e^x+e^-x}ex+e−xex−e−xf’(x)=1-((fx))2((fx))^2((fx))2Reluf...原创 2019-09-01 10:02:29 · 289 阅读 · 0 评论 -
反卷积
反卷积:参考地址:https://zhuanlan.zhihu.com/p/48501100上采样有3种常见的方法:双线性插值(bilinear),反卷积(Transposed Convolution),反池化(Unpooling),我们这里只讨论反卷积。这里指的反卷积,也叫转置卷积,它并不是正向卷积的完全逆过程,用一句话来解释:反卷积是一种特殊的正向卷积,先按照一定的比例通过补 0 来...原创 2019-04-21 16:17:21 · 1300 阅读 · 0 评论 -
Batch Normalizition
1 什么是归一化/标准化Normalization是一个统计学中的概念,我们可以叫它归一化或者规范化,它并不是一个完全定义好的数学操作(如加减乘除)。它通过将数据进行偏移和尺度缩放调整,在数据预处理时是非常常见的操作,在网络的中间层如今也很频繁的被使用。线性归一化最简单来说,归一化是指将数据约束到固定的分布范围,比如8位图像的0~255像素值,比如0~1。在数字图像处理领域有一个很常见的...原创 2019-04-21 21:36:50 · 391 阅读 · 0 评论 -
tf生成的ckpt各个文件的作用和tf.train.Saver()
—checkpoint 文件保存了一个目录下所有的模型文件列表—model.ckpt-240000.data-00000-of-00001 文件保存了TensorFlow程序中每一个变量的取值—model.ckpt-240000.index—model.ckpt-240000.meta 保存了tensorflow的网络结构图,例如一个神经网络,各个网络层之间的安排这里的.index...原创 2019-04-22 15:31:32 · 1122 阅读 · 0 评论 -
DSOD:Learning Deeply Supervised Object Detectors from Scratch 翻译
本篇论文大多数部分是利用有道进行翻译的,目的只是帮助理解原论文,所以对本篇论文感兴趣的同学,一定要对着原文进行理解,否则会越看越乱。DSOD: Learning Deeply Supervised Object Detectors from 摘要 提出了一种基于深度监督的目标检测器(DSOD)框架,该框架可以对目标检测器进行从无到有的学习。最先进...原创 2019-05-07 10:17:56 · 733 阅读 · 0 评论 -
tf.variable_scope(),tf.name_scope()区别
TensorFlow提供了两种创建变量的方法,一种是tf.Variable(),另一种是tf.get_variable()。tf.get_variable()除了可以创建变量外,还能获取变量。当tf.get_variable()用于创建变量时,它与tf.Variable()的功能是基本等价的。v = tf.get_variable('v', shape=[1], initializer=tf....原创 2019-05-07 15:17:58 · 165 阅读 · 0 评论 -
ubuntu中多个版本安装多个版本cuda,及其版本间切换
假设之前已经有cuda10,我们需要安装cuda9.0.首先下载cuda9.0,文件名为cuda_9.0.176_384.81_linux.run然后解压sudo sh cuda_9.0.176_384.81_linux.run这一步的时候,系统询问是否再安装NVIDA的时候选N,是否建立软连接的时候选N,其余的选项都选yes然后在官网下载cudnn文件名为 libcudnn7_7....原创 2019-05-07 20:55:49 · 2607 阅读 · 1 评论 -
faster-rcnn tensorflow版本训练代码运行
运行这个代码我只想说fuck fuck!好多坑啊…我运行的代码是 smallcorgi/Faster-RCNN_TF版本的,其实github上大多的faster-rcnn-tf都差不多,都是照着源码写的,像这种官方的代码运行起来真费劲!1. 运行环境这一部分超级重要,要想少走弯路.我的运行环境ubuntu16.04 + cuda8+cudnn6+python2.7+tensorflow1.3...原创 2019-05-22 10:28:24 · 963 阅读 · 1 评论 -
各种图像通道数
二值图: 单通道,每个像素点只能是0或255灰度图:单通道,其实RGB三通道图片每个单独拿出来都是灰度图,每部分的 亮暗代表了该通道在RGB图像中颜色的深浅RGB:三通道...转载 2019-05-22 21:53:34 · 5644 阅读 · 0 评论 -
tensorflow内存吃满
昨天遇到了一个贼傻叉的问题,跑yolov3的代码,在笔记本上运行的好好的,改到台式机上怎么都不行,读取网络权重也能读出来,但是一跑到sess.sun(…)就会发生内存全被吃满,莫名其妙的问题,现在还是不理解为什么会这样,然后就试着调了一下,怎么都不行,后来改了一下用的gpu号,平时默认都会使用0号,我给改成1了,然后居然好使了,wtf!这是咋回事啊…修改版本号os.environ["CUDA...原创 2019-05-24 11:23:42 · 1398 阅读 · 1 评论 -
tensorflow 几种交叉熵损失函数
交叉熵损失函数是用来计算分类问题的损失值的,常用的有以下三种tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,labels=None, logits=None, name=None)argument:_sentinel:本质上是不用的参数,不用填logits:一个数据类型(type)是float32或float64;shap...原创 2019-06-09 21:04:17 · 1871 阅读 · 0 评论 -
如何理解tensorflow中的tf.variable_scope()
开始的时候一直不明白,命名空间有什么作用,现在有了一点点新的理解,因为在使用预训练模型的时候要理解这个东西。在使用预训练网络模型的时候要想加载预训练模型,模型中的tf.Variable类型的数据命名空间必须相同,也就是说每个变量的名字要想同,这样在加载变量权重的时候才能一一对应上。def net(inputs): with tf.variable_scope('net'): ...原创 2019-08-31 15:35:13 · 256 阅读 · 0 评论 -
归一化,标准化,中心化/零均值化
一. 概念归一化:1)把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。2)把有量纲表达式变成无量纲表达式**(将不同单位的数据变成没有单位的纯量)**,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。标准化在机器学习中,我们可能要...原创 2019-09-01 12:29:50 · 1135 阅读 · 0 评论 -
目标检测系列:R-cnn
研究生的生活已经过去了快一年,自己依然一无所成,之前对目标检测有些许的感兴趣,看过一点点的目标检测方向的论文,但是边看边忘,回过头一想什么脑子一片空白,曾经觉得写博客会浪费掉很多的时间,不值得做,但是现在才发现这对知识的梳理有很大的帮助,所以从此开始在这里总结一下学习上的收获和心得,如有不对的地方希望各位同学能帮忙指出来。好了,下面开始切入正题,在深度学习火起来之前就有人研究目标检测的东西,但...原创 2019-04-16 18:30:28 · 191 阅读 · 0 评论