深度学习&机器学习
笔记
程序猿的探索之路
走好人生中的每一步路!
展开
-
VGG网络
如今深度学习发展火热,但很多优秀的文章都是基于经典文章,经典文章中的一句一词都值得推敲和分析。此外,深度学习虽然一直被人诟病缺乏足够令人信服的理论,但不代表我们不能感性分析理解,下面我们将对2014年夺得ImageNet的定位第一和分类第二的VGG网络进行分析,在此过程中更多的是对这篇经典文章的感性分析,希望和大家共同交流产生共鸣,如果有理解不到位的也真诚期待指出错误。Simonyan, Karen, and Andrew Zisserman. "Very deep convolut..转载 2021-09-25 19:13:27 · 594 阅读 · 0 评论 -
卷积神经网络中常见名词解释:参数,计算量,FLOPs,Multi-Add(乘加),输出特征图尺寸
参考:【1】http://cs231n.github.io/convolutional-networks/【2】https://www.zhihu.com/question/65305385转载 2021-09-25 19:05:56 · 599 阅读 · 0 评论 -
【笔记】MobileNet_v1:VGG中的 标准卷积层 换成深度可分离卷积
代码:gluon-cv/mobilenet.py at 5f5ce87d9a1df1623e15d39d1d2dc65317337652 · dmlc/gluon-cv · GitHub转载 2021-09-25 19:01:37 · 617 阅读 · 0 评论 -
nvidia.dali 模块安装方法
向趟雷的人,致敬 !!!源码:Release DALI v1.6.0 · NVIDIA/DALI · GitHub原创 2021-09-25 12:42:35 · 3917 阅读 · 1 评论 -
python 列表 or tensor
import torch as ta=t.tensor([False,True])b=t.tensor([[2,3,4],[1,2,3]])print(b[0],b[1])c=b[a]print(c)Output:tensor([2, 3, 4]) tensor([1, 2, 3])tensor([[1, 2, 3]])import torch as ta=t.tensor([[1,2,4],[1,2,3]])b=t.tensor([[2,3,4...原创 2021-06-29 17:50:50 · 303 阅读 · 0 评论 -
目标检测:只带train部分
from PIL import Image, ImageDrawimport matplotlib.pyplot as pltimport osimport torch.nn as nnimport torchfrom torch.utils.data import Dataset, DataLoaderimport osfrom PIL import Imageimport numpy as npimport torchvision.transforms as trans...原创 2021-06-28 22:30:06 · 182 阅读 · 0 评论 -
准确度、精度、召回率:准确度侧重点在网络的分类正确度;精度侧重点在网络分为的正样本中真正的正样本所占比例;召回率侧重点在网络分为的正样本占原始数据中正样本的比例
1)机器学习中的准确度、精度、召回率2) 其它应用上https://blog.csdn.net/nyist_yangguang/article/details/108175337原创 2021-06-28 22:25:42 · 170 阅读 · 0 评论 -
TypeError: train() missing 1 required positional argument: ‘self‘
原创 2021-06-28 22:23:09 · 1272 阅读 · 0 评论 -
Python编程中NotImplementedError的使用方法
Python编程中raise可以实现报出错误的功能,而报错的条件可以由程序员自己去定制。在面向对象编程中,可以先预留一个方法接口不实现,在其子类中实现。如果要求其子类一定要实现,不实现的时候会导致问题,那么采用raise的方式就很好。而此时产生的问题分类是NotImplementedError。写一段代码如下: 1 2 3 4 5 6 7 8 9 class ClassDemo: ...转载 2021-06-28 22:19:41 · 5032 阅读 · 0 评论 -
Pytorch出现RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)
https://www.lizenghai.com/archives/41780.html最近开始学习pytorch,在训练时出现标题所示问题。浏览了很多方法后,总结出出现这个问题的主要原因是输入的数据类型与网络参数的类型不符。Input type为torch.cuda.FloatTensor(GPU数据类型), weight type(即net.parameters)为torch.FloatTensor(CPU数据类型)网上资料大多数的解决方法是 将网络放到GPU上。有以下两种方法..转载 2021-06-28 22:17:40 · 591 阅读 · 0 评论 -
目标检测_标准版
import torchfrom torch.utils.data import Dataset, DataLoaderimport osfrom PIL import Imageimport numpy as npimport torchvision.transforms as transimport torch.nn as nnimport matplotlib.pyplot as pltfrom PIL import ImageDrawimport Polygon as plg...原创 2021-06-28 12:35:00 · 145 阅读 · 0 评论 -
open(r“地址“) r的作用,防止字符转义
例:原创 2021-06-27 21:13:40 · 725 阅读 · 0 评论 -
inplace=True 会将计算得到的值赋值给变量(覆盖之前的值)
优点:优化显存缺点:损失中间变量原创 2021-06-27 21:02:28 · 321 阅读 · 0 评论 -
python中的numpy.transpose 方法
先看点资料:资料1:二维:注释:它的意思是轴0,轴1随便定义,如果映射到平面直角坐标系中,x轴y轴均可以定义0轴,1轴同理。而这个里面的行标(第一个括号),是与轴0对应的,列标(第二个括号),是与轴1对应的。三维:注释: 这个10指的是 0轴和1轴 转换后, A[0][1][2]的值是10。看到这里不懂,不要紧,我们接着看。资料2:注释:我们通过资料二可以知道,在三维(二维同理)坐标下,这个 arr 就是包含 两...原创 2021-06-27 17:41:26 · 339 阅读 · 3 评论 -
python 模块全称
PIL Python Imaging Libraryshutil shell utilitymatplotlib matrix +plot+ librarynumpy Numerical Pythonos operating system原创 2021-06-27 16:52:17 · 174 阅读 · 0 评论 -
图片存取函数
不需要整体照着敲一遍,主要是读取的方法,存储的格式。比如:img可以使用cv2包中的imread函数读取,读取需要路径:imagepath就是路径,比如 "../abc.png"然后呢,cv2.imwriter这个函数可以存储,同样需要存储的文件夹路径,savepath,比如 "../ABC/1.png" ,注意啊,它写的第二个实参是img,是将这个矩阵img存储到savepath这个路径里面。当然,有的函数不需要这样写,比如 img.save ,如下这个函数存储就不需要写两个参...原创 2021-06-26 10:29:58 · 1683 阅读 · 0 评论 -
RGB图片的颜色 和 矩阵元素 的关系
[0,0,0] 黑[255,0,0] 蓝[0,255,0] 绿[0,0,255] 红[255,255,255] 白原创 2021-06-24 21:11:58 · 1010 阅读 · 0 评论 -
深度学习常用的数据集
前言:数据是深度学习的血液,本文介绍一下当前非常常见的一些数据集。1 ImageNetImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像数据库。每年的ImageNet大赛更是魂萦梦牵着国内外各个名校和大型IT公司以及网络巨头的心。图像如下图所示,需要注册ImageNet帐号才可以下载,下载链接为http://www.ima...转载 2021-06-24 15:54:24 · 2786 阅读 · 0 评论 -
爬取图片的小程序
程序1:# -*- coding: utf-8 -*-"""Created on Fri Apr 12 17:31:25 2019@author: sunst&晴雨qy@des:爬取图片,提供两种方法"""# re模块主要包含了正则表达式import re# urllib模块提供了读取Web页面数据的接口import urllib.requestfrom urllib import request# 定义一个getHtml()函数def getSuperH...原创 2021-06-24 11:16:53 · 750 阅读 · 0 评论 -
pip 和 conda 的区别
个人体会: conda 下载不了的包,pip分分钟搞定。即使清华源在手,也需要翻墙,很多情况下github需要vpn才可以轻松访问。资料:评论区:原创 2021-06-23 21:51:55 · 145 阅读 · 0 评论 -
ubuntu 安装和卸载deb文件
原创 2021-06-22 21:05:52 · 270 阅读 · 0 评论 -
解释:多元函数的梯度 方向 为什么是 令多元函数变化率最大时的方向
要注意,导数是具有方向的。一元函数的导数值和方向:二元函数的导数值和方向:我们要理解:导数的意义本身就是求的该点的变化率,无论是一元还是二元还是多元。所以二元导数和一元导数一样,它同样具有方向,方向是沿着曲面上该点,并且下降幅度最大的方向,这点变化率最大,沿着这个幅度最大的方向所在直线看,无论是向上,还是向下,都是变化最快的。至于梯度,梯度是什么?我们规定曲面上该点下降幅度最大的反方向(还是下降幅度最大的那个方向所在的直线上,只不过是下降的反方向,也就...原创 2021-06-22 11:45:38 · 3033 阅读 · 1 评论 -
双线性插值
我认为文章还可以。原创 2021-06-21 10:54:37 · 255 阅读 · 0 评论 -
3*3卷积的优点
原创 2021-05-31 22:59:41 · 375 阅读 · 0 评论 -
创建神经网络的程序出现raise NotImplementedError
1. def forward函数缩进的问题,没有对齐 def __init__2. forward 单词拼写错误原创 2021-05-19 22:13:45 · 261 阅读 · 0 评论 -
神经网络中用到的一些python语法,filter函数、lambda函数、map函数以及什么是可迭代对象
原创 2021-05-19 22:11:36 · 182 阅读 · 0 评论 -
Embedding 对象 embedding(input) 是读取第 input 词的词向量
问题:不知道embedding(input)是什么意思,因为weight和input的维度完全没法做乘法运算from torch.autograd import Variable as Vimport torch as tfrom torch import nnt.manual_seed(1000)input=V(t.randn(2,3,4))# 一个LSTMCell对应的层数只能是一层lstm=nn.LSTMCell(4,3)hx=V(t.randn(3,3))cx=V(t.原创 2021-05-17 15:51:11 · 704 阅读 · 0 评论 -
经典的lstm(Embedding)的例子
from torch.autograd import Variable as Vimport torch as tfrom torch import nnn, d, m = 3, 5, 7embedding = nn.Embedding(n, d, max_norm=True)W = t.randn((m, d), requires_grad=True)idx = t.tensor([1, 2])a = embedding.weight.clone() @ W.t() # w...原创 2021-05-17 12:07:29 · 1291 阅读 · 0 评论 -
报错信息:RuntimeError: isDifferentiableType(variable.scalar_type()) INTERNAL ASSERT FAILED at ...
RuntimeError: isDifferentiableType(variable.scalar_type()) INTERNAL ASSERT FAILED at "/opt/conda/conda-bld/pytorch_1607370156314/work/torch/csrc/autograd/functions/utils.h":64, please report a bug to PyTorch.解决办法:加上去 with t.no_grad():...原创 2021-05-17 11:16:31 · 3377 阅读 · 0 评论 -
RNN的前向传播函数
程序:import torch as tfrom torch import nnfrom torch.autograd import Variable as Vt.manual_seed(1000)# 输入 batch_size=3,序列长度都为2,序列中每个元素占4维input=V(t.randn(2,3,4))print(input)# lstm 输入向量4维,3个隐藏元,1层lstm=nn.LSTM(4,3,1)# 初始状态:1层,batch_size=3,3...原创 2021-05-11 16:35:32 · 1211 阅读 · 2 评论 -
Hadamard product 和 矩阵乘积
1. Hadamard product定义:实现:2. 矩阵乘积定义:实现:原创 2021-05-11 15:53:21 · 307 阅读 · 0 评论 -
RNN的原理和公式
正常的LSTM:资料:原创 2021-05-11 11:52:22 · 1055 阅读 · 0 评论 -
创建神经网络时,为什么用ModuleList而不用List
ModuleList是Module的子类,挡在Module中使用它时,就能自动识别为子module。输入:from torch import nnimport torch as tfrom torch.autograd import Variable as Vclass MyModule(nn.Module): def __init__(self): super(MyModule,self).__init__() self.list=[nn.L...原创 2021-05-10 17:28:53 · 2346 阅读 · 0 评论 -
使用nn.Sequential 、 ModuleList创建卷积神经网络:conv 和 input 之间的关系
此篇笔记两个重点:第一,卷积神经网络创建方法。第二,conv 和 input 的关系。1.使用nn.Sequential创建卷积神经网络目的:对于 将每一层的输出直接作为下一层的输入,这种网络称为前馈传播网络(Feedforward Neural Network)。对于此类网络,如果每次都写复杂的forward函数会有些麻烦,在此就有两种简化方式,ModuleList和Sequential。其中Sequential是一个特殊的Module,它包含几个子Module,前向传播时会将输入一层原创 2021-05-10 12:03:49 · 1313 阅读 · 0 评论 -
eps的作用
eps是为了防止分母为0,一般可以取1e-4到1e-8之间。原创 2021-05-07 18:22:08 · 3067 阅读 · 0 评论 -
Batch Normalization 解释
我对batch normalization的理解是:pytorch document:原创 2021-05-07 17:57:06 · 91 阅读 · 0 评论 -
神经网络中可学习参数不应该人为随便修改
对module属性进行操作的时候,可学习参数一般会随着学习的进行而不断改变。实际使用中除非需要使用特殊的初始化,否则应尽量不要直接修改这些参数。原创 2021-05-07 17:32:16 · 262 阅读 · 0 评论 -
正态分布、期望和均值的区别、有偏和无偏估计量(方差)的理解
综合资料一二三,分析(有偏和无偏估计量)方差。资料一:资料二:资料三:资料四:分析: 此处包含方差的一个公式,方差 = 平方的期望 - 期望的平方...原创 2021-05-07 10:34:39 · 21634 阅读 · 0 评论 -
pytorch中view,squeeze都可以改变向量维度
import torch as ta=t.arange(1.0,10,1)print(a)print(a.shape,a.size())a=a.view(1,1,9,1)print(a)print(a.shape,a.size())a=a.view(9)print(a)a=a.unsqueeze(1)print(a)print(a.shape,a.size())a=a.squeeze(1)print(a)print(a.shape,a.size())...原创 2021-05-06 15:36:17 · 363 阅读 · 0 评论 -
(一张3*225*225)图片进行view变换(结合ToTensor 、 ToPILImage):python默认逐行读取数据,读取完一个C,继续第二个C的逐行读取,直至完毕
可以思考下为什么图片变成了3*3 9份而这里的图片变成了3*1 3份不懂得可以问我。原创 2021-05-06 15:04:22 · 133 阅读 · 0 评论