机器学习
文章平均质量分 85
Geek_of_csdn
是菜就要认,挨打要立正。一个奋斗的菜鸟,目前在深圳某公司工作。本账号下所有上传的资料都可以直接通过邮箱免费索要,邮箱地址:dianxin2wu@foxmail.com
展开
-
VQA(图像问答)数据集结构及大致内容
这篇文章只讲下VQA的文件结构和文件内容,官方工具的用法及一些小技巧。VQA数据集概况其实VQA有很多种数据集,比较常用的有VQA v1.0、 VQA v2.0、Visual7W等。这篇文章中使用的数据集主要是VQA v1.0(其实和2.0差不多,读取方式没变,只是优化了内容,让模型更加不容易通过蒙来答对问题)。直接开始吧。VQA V1.0结构及内容概要VQA v1.0的数据集内容如下1:VQA的结构:以上图片截图自VQA官网总之就是每张图片对应3个以上的问题(平均5.4个),每个问题对原创 2020-10-15 23:42:29 · 6671 阅读 · 2 评论 -
卷积核及池化层的基本概念笔记
卷积核基本概念全连接网络的问题在于参数太多,例如一个尺寸为200×200×3200 \times 200 \times 3200×200×3的图像会让下一层隐藏层中的一个神经元包含200×200×3=120,000200 \times 200 \times 3 = 120,000200×200×3=120,000个权重,而且这一层中可能还不止一个神经元。过多参数带来的后果就是容易导致过拟合,而且不容易训练。因此需要通过一些手段来减少参数数量,降低训练难度。所以就有了卷积神经网络。卷积神经网络由卷积核组成原创 2020-10-15 23:39:54 · 3470 阅读 · 0 评论 -
YOLO系列(1~3)神经网络笔记
闲话少说,进入正题。YOLO是一种One-stage的物体检测网络1。one-stage即直接生成物体的类别概率和位置坐标值,经过单次检测就可以直接得到结果;相对应的是two-stage甚至multi-stage,multi-stage已经淘汰,所以不提,two-stage则是将检测问题划分为两个阶段,先产生候选区域(region proposals)然后对候选区域分类(一般还需要对位置精修),Faster R-CNN之类的就属于这一类2。v1带有全连接网络,但是v2和v3都舍弃掉了全连接网络,改成了纯CN原创 2020-10-14 20:09:26 · 1559 阅读 · 0 评论 -
MFB论文笔记(1)——论文复现之论文实验部分摘要及特征提取
还是接着[上次笔记](https://blog.csdn.net/Geek_of_CSDN/article/details/81328487)的内容,这次是关于实验部分的。原创 2019-05-07 23:03:53 · 2043 阅读 · 1 评论 -
MFB论文笔记(2)——论文复现之MFB_baseline模型的训练
Visual Genome处理(可跳过)其实这个步骤不是必须做的,但是属于预处理步骤,所以还是写上来比较好。在用到Visual Genome来训练的时候才需要做这个部分,所以可以先跳过再回来看看。因为mcb项目已经比较老了,所以项目那里的说明基本上不能够直接用,除非你打算安装旧版本的Visual Genome Python Driver。这里我决定直接用新版本的,因为旧版本和新版本其实没有大的...原创 2019-05-07 23:03:44 · 2073 阅读 · 1 评论 -
LSTM公式及理解
LSTM的基本结构及推导这部分内容基本都是来自Step-by-step to LSTM: 解析LSTM神经网络设计原理,只是添加了一些贫僧的想法。从RNN、记忆说起LSTM(Long Short Term Memory,长短期记忆,注意这里的长短期,后面会提到是什么意思)的作者是个有点奇怪的人1,他的名字是Jürgen Schmidhuber(发音也挺奇怪)。LSTM的作者很有意思,如果读者...原创 2019-01-25 22:34:22 · 40141 阅读 · 7 评论 -
使用Keras提供的VGG16来提取feature
直接上code:import osimport h5pyfrom tqdm import tqdmimport tensorflow as tffrom tensorflow.keras.preprocessing import imagefrom tensorflow.keras.applications.vgg16 import VGG16from tensorflow.ker...原创 2019-02-24 16:45:38 · 2912 阅读 · 2 评论 -
Stacked Attention Networks解析(LSTM版)
SAN网络,全名叫“Stacked Attention Networks”。原作者的代码实现是基于Theano的,这个框架现在(2019年1月末)并不是很流行(基本没人用),所以后来有人用TensorFlow或者Pytorch等新的框架复现了这篇论文的结果,这篇文章只会稍微谈到Pytorch实现的版本。原创 2019-05-07 23:03:21 · 2810 阅读 · 0 评论 -
PyTorch:利用预训练好的ResNet-152网络提取图片特征
这篇博文相当于是对上一篇博文Pytorch:利用预训练好的VGG16网络提取图片特征 的补充,本文中提到的提取方式与前文中的不同。另外,因为TorchVision提供的训练好了的ResNet效果不好,所以本文中将会使用由ruotianluo提供的从Caffe转换过来的ResNet模型(具体可以看这个repo,如果好奇怎么转换的话)。代码以下代码节选自pytorch-vqa的preproces...原创 2019-05-13 19:16:59 · 18710 阅读 · 11 评论 -
CS231n笔记(4)反向传播
可终于来到反向传播了。。。之前更新得实在是太慢了。。。简介反向传播是利用链式法则递归计算表达式的梯度的方法。理解反向传播过程及其精妙之处对于理解、实现、设计和调试神经网络非常关键(疯狂暗示)。问题陈述:核心问题是给定函数f(x)f(x)f(x),其中xxx是输入数据的向量,需要计算函数fff关于xxx的梯度,也就是∇f(x)∇f(x)\nabla f(x)参考CS231...原创 2018-09-02 22:50:26 · 413 阅读 · 0 评论 -
CS231n笔记(5)神经网络(1)
其实还是全连接的神经网络(玄学模型),也算是基础吧,但是这里的基础打好了对后面学习CNN的时候会有一点帮助。快速简介和之前提到的线性分类器里面s=Wxs=Wxs = Wx来进行计算不同视觉类别的评分不同,神经网络是s=W2max(0,W1x)s=W2max(0,W1x)s = W_2\max(0, W_1x),其中W1W1W_1的作用是将图像转化为一个特定维度的过渡向量(这里过度向量具...原创 2018-09-04 16:49:06 · 855 阅读 · 0 评论 -
关于为Torch配置CuDNN 7(或6以上版本)
其实不能直接配置CuDNN 7给Torch使用,贫僧在上次博客里面跳过了测试阶段,所以错过了这个bug(所以说测试还是必不可少的啊)。闲话少说,直接使用比较新的版本但是没在~/.bashrc里面配置好路径会出现下面这样的错误:/home/ubuntu/torch/install/bin/luajit: /home/ubuntu/torch/install/share/lua/5.1/tre...原创 2018-05-26 13:38:23 · 4580 阅读 · 10 评论 -
一些关于Torch7的记录
有时想要在一台有GPU的机器上(前提是这台机器已经装好了CUDA)训练好模型之后将模型转到CPU型的,这样就可以在没有GPU的机器上(或者没装cuda加速的机器)导入这个模型了。但是可能会遇到奇怪的错误,这里就记录一些贫僧遇到的奇怪的错误。奇怪错误之读取模型在进入了torch的交互命令行环境(就是用th来进入的那个环境)之后,如果发现用m = torch.load('x.t7')遇到了...原创 2018-06-27 20:09:16 · 1570 阅读 · 4 评论 -
《Learning Deep Representations of Fine-Grained Visual Descriptions》论文及代码阅读笔记
最近在读这篇文章原创 2019-10-07 22:35:39 · 1863 阅读 · 8 评论 -
CS231n笔记(1)线性分类器
主要关于lecture 2,只记录贫僧觉得有用的东西,所以课程里一些介绍性的内容会被忽略掉。因为直接通过编程方式来识别图像太麻烦了,所以要通过数据驱动的方式来让程序自己学会怎么识别。数据驱动方式:收集一大堆带有标签的图片(标签是人工标注的,所以给这种方法带来了一定的局限性)用机器学习算法训练分类器在新图片上评估分类器的性能最简单的:NN(Nearest Neighbor),...原创 2018-08-10 14:18:11 · 314 阅读 · 0 评论 -
CS231n笔记(2)线性分类器:SVM,Softmax函数
补充:权重WWW可以看作是每个种类的学习模板,决定输入的图片xxx里面哪些像素对输入被分到某个类别上有多少影响。所以权重的每一行对应一个分类模板,如果重新将权重某一行重新解开成图片大小,那么既可以看到这个模板的图片形式。另一种线性分类器的解释:学习像素在高维空间的一个线性决策边界,其中高维空间就对应图片能取到的像素密度值。损失函数简单定义:一个将WWW当作输入,看下里面的数值,...原创 2018-08-19 11:55:53 · 1115 阅读 · 0 评论 -
Torch笔记之如何读取txt并在字母层面上将内容按照字典替换成相应的数字
这个转换的问题其实是贫僧在尝试将某个.txt文件转换成Tensor来喂给训练好的神经网络模型时遇到的(训练的神经网络是char level的,具体看贫僧之前的博文)时遇到的。实现的步骤分成以下几个部分:读取txt文件内容将txt内容按照字典转化成对应的数字将文件保存为.t7格式,方便神经网络读取在正式开始之前先说下字典,字典是用这种方式生成的:alphabet = "abc...原创 2018-08-26 16:23:52 · 1202 阅读 · 0 评论 -
CS231n笔记(3)线性分类器:最优化
先说下最优化是什么:最优化是寻找能使损失函数值最小化的参数WWW的过程。铺垫:之后会把映射部分拓展成比线性函数更加复杂的函数(例如神经网络),但是损失函数和最优化过程这两个部分不会有很大改动,所以这两个部分的基础一定要打好。损失函数可视化因为我们现在的损失函数通常定义在高维空间里面,比较难可视化,所以要在1或者2个维度上对高维空间进行切片来可视化。例如随机生成一个权重矩阵WWW,这个矩...原创 2018-08-21 00:27:11 · 539 阅读 · 0 评论 -
《Multi-modal Factorized Bilinear Pooling with Co-Attention Learning for Visual Question Answering》笔记
这是ICCV2017上的一篇文章(文章链接),代码在github上的地址:链接。简单翻译一下摘要:摘要VQA(visual question answering 图像问答)因为需要同时对图像信息和问题的信息进行理解而比较难解决。建立的模型的性能在很大程度上取决于怎么从问题中提取特征,怎么图像中进行细粒度信息提取需要的特征,以及怎么对这两种提取出来的特征进行整合。尽管各类基于双线性池化的...原创 2019-05-07 23:03:13 · 5671 阅读 · 29 评论 -
环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装
首先,电脑的系统是Ubuntu 16.04硬件是GTX1080Ti,因为要用到GPU加速,所以要装显卡驱动和CUDA。 打算安装的东西和大概步骤按下面的来: 1. Anaconda(最容易装,最先说其实是因为贫僧最先下载好了这个软件的安装包。。。) 2. 显卡驱动 3. CUDA9.1和CuDNN 4. TensorFlow1.7.1(装在Anaconda创建的虚拟环境里面) ...原创 2018-05-19 20:45:26 · 3002 阅读 · 0 评论