深度学习
duanlianvip
这个作者很懒,什么都没留下…
展开
-
【TensorFlow】 利用LSTM进行情感分析
深度学习技术发展到今天,在图像、语音、自然语言处理(natural language processing,NLP)领域有很多的应用。由于人类语言的多样性、多意性,使得NLP的难度成倍增加。例如由相同的三个字形成的组合“不怕辣”、“辣不怕”、“怕不辣”、“怕辣不”表达了不同的含义。有些话还要结合当时的语境进行理解,否则得到的结果谬之千里,比如:“中国乒乓球谁也打不过”、“中国足球谁也打不过”。本文...原创 2019-12-25 18:50:48 · 4715 阅读 · 4 评论 -
【TensorFlow】 基于LSTM的行为识别
简介本文基于LSTM来完成用户行为识别。数据集来源:https://archive.ics.uci.edu/ml/machine-learning-databases/00240/此数据集一共有6种行为状态:行走; 站立; 躺下; 坐下; 上楼; 下楼;以上6种行为数据是通过传感器进行采集的。.\data\UCI HAR Dataset\train\Inertial S...原创 2019-12-16 19:51:30 · 5191 阅读 · 5 评论 -
【TensorFlow】TensorBoard的使用(四)
在《【TensorFlow】TensorBoard的使用(三)》中讲述了如何增加TensorBoard所展示的参数。本文旨在讲述如何让TensorBoard帮我们进行参数的选择。主要增加如下信息:设置不同的学习率:for learning_rate in [1E-4, 1E-3, 1E-2]: 设置不同的全连接层:for use_two_fc in [True, False]: 设置不...原创 2019-08-06 17:06:28 · 2741 阅读 · 2 评论 -
【TensorFlow】使用RNN预测时间序列
现有一个时间序列international-airline-passengers.csv,怎么使用RNN来预测呢?本文就对其进行详细的阐述。本时间序列一共144行,数据量很小,但是用其来学习RNN的使用已经足够了。使用RNN预测时间序列的整体思路是:取时间序列的第二列(international-airline-passengers.csv的第一列数据为时间,未在本次程序中使用),...原创 2019-08-07 17:17:42 · 7867 阅读 · 3 评论 -
【Python】optparse模块 - 处理命令行参数
optparse是python中用来处理命令行参数的模块,可以自动生成程序的帮助信息,功能强大,易于使用,可以方便的生成标准的,符合Unix/Posix 规范的命令行说明。使用add_option()来加入选项,使用parse_args()来解析命令行。add_option()中参数:add_option(self, *args, **kwargs)第一个参数表示optio...转载 2019-08-26 11:55:07 · 1182 阅读 · 0 评论 -
【TensorFlow】用TFRecord方式对数据进行读取(一)
在做深度学习项目时,在模型训练前,通常要对训练/验证图像进行读取操作。之前博文《TensorFlow 卷积神经网络 - 猫狗识别》使用的是OpenCV读取的方式。使用OpenCV把图像读成矩阵形式当然可以满足模型训练的要求,此方式在处理小批量图像时还可以,如果处理大批量图像,就显得有点慢了。对于大型项目、大批量的图像,经常用TFRecord的方式对数据进行读取。TFRecord是TensorF...原创 2019-08-28 12:57:08 · 2369 阅读 · 0 评论 -
【TensorFlow】用TFRecord方式对数据进行读取(二)
笔记《【TensorFlow】用TFRecord方式对数据进行读取(一)》讲述了如何生成TFRecord文件。那么如何读取生成的文件进行模型训练呢?且往下看。本文读取TFRecord的方法大致如下:构建.tfrecord文件的文件路径列表filenames 使用string_input_producer(filenames)方法生成一个文件名队列filename_queue 使用pre...原创 2019-09-03 17:58:34 · 445 阅读 · 0 评论 -
【TensorFlow】4位纯数字或数字字母组合验证码识别
本文做了一个识别简单验证码的小例子,具体思路如下:使用captcha类库随机生成4位纯数字或数字、大小写组合的验证码; 以第一步生成的验证码为训练数据,对3层卷积、2层全连接模型进行训练; 当训练的正确率达到规定的阈值时,保存模型,并停止训练。说明:若验证码为4位纯数字,则模型要完成的分类数为4*10=40分类任务; 若验证码为4为数字+大写+小写组成,则为4*(10+26+26)...原创 2019-09-13 21:32:54 · 4088 阅读 · 0 评论 -
【TensorFlow】对抗生成网络(GAN)- 根据MNIST数据集模拟生成数字手写体实战
简介简单的说,对抗生成网络就是真和假之间的对抗。造“假”水平不断提高,以此瞒过“真”的眼睛;辩“真”能力不断提高,以此识别出“假”。两股力量不断博弈,最后达到以假乱真的目的。生成器G(造假) :生成的结果越真越好,可以以假乱真。达到瞒天过海,骗过判别器的目的 判别器D(打假):具有火眼金睛,分辩真假的能力越强越好。分辨出生成和真实的 损失函数:一方面要让判别器分辨能力更强,另一方面要让...原创 2019-09-30 15:34:19 · 1543 阅读 · 3 评论 -
【TensorFlow】对抗生成网络(DCGAN)- 根据MNIST数据集模拟生成数字手写体实战
《文章》介绍了使用全连接构建对抗生成神经网络GAN,本文介绍基于卷积构建对抗生成神经网络DCGAN(深度卷积对抗生成网络,Deep Convolutional Generative Adversarial Networks)。DCGAN的特点判别模型:使用带步长的卷积(strided convolutions)取代了的空间池化(spatial pooling),容许网络学习自己的空间下采样...原创 2019-09-30 19:23:08 · 1224 阅读 · 0 评论 -
【TensorFlow】TensorBoard的使用(三)
在《【TensorFlow】TensorBoard的使用(二)》中讲述了如何使生成的图更具有可阅读性,但是生成的可阅读参数较少,本文旨在增加TensorBoard的展示信息。主要增加如下信息:权重、偏置等在训练过程中的分布情况:tf.summary.histogram('weights', w) 损失值、准确率随着迭代次数的进行,其指标变化情况:tf.summary.scalar('ac...原创 2019-08-06 14:24:36 · 4440 阅读 · 2 评论 -
【TensorFlow】TensorBoard的使用(二)
在《【TensorFlow】TensorBoard的使用(一)》中讲述了如何简单的使用TensorBoard,但是生成的图比较乱,本文旨在对生成的图进行优化。优化主要分为如下步骤:定义操作名字的作用域:with tf.name_scope(name): 定义张量的name值:w = tf.Variable(tf.truncated_normal([5, 5, size_in, size_...原创 2019-08-06 10:22:21 · 7786 阅读 · 0 评论 -
TensorFlow ValueError: Dimensions must be equal, but are 32 and 3 for 'Conv2D_1' (op: 'Conv2D') with
今天在运行卷积神经网络时遇到如下错误:ValueError: Dimensions must be equal, but are 32 and 3 for 'Conv2D_1' (op: 'Conv2D') with input shapes: [?,32,32,32], [3,3,3,32].经过设置断点调试得知在进行第二层卷积的时候遇到了问题:第二层卷积的输入值维度:x=[?,...原创 2019-07-04 16:20:55 · 15608 阅读 · 4 评论 -
【TensorFlow】 利用卷积神经网络对CIFAR-10数据集进行分类
一、CIFAR-10介绍CIFAR-10数据集包括6万张32*32大小的彩色图片,该数据集一共有10个类别,每个类别有6千张图片。其中训练数据集图片5万张,测试数据集1万张。该训练数据集平均分成5个训练批次,每个训练批次1万张图。下载该数据集的链接:http://www.cs.toronto.edu/~kriz/cifar.html由于本文是基于Python3.6的,所以选择“CIFA...原创 2019-07-10 17:10:06 · 2747 阅读 · 0 评论 -
TensorFlow 卷积神经网络 - 猫狗识别
最近在尝试学习使用卷积神经网络对猫狗进行识别,准备猫、狗图片各500张图片,图片是大小不一的彩色图片。大致的实现思路:各准备猫、狗500张图片,并对其命名“cat.XXX.jpg”、“dog.XXX.jpg”,计划20%猫、20%狗作为验证,剩下做训练; 图片大小归一化:使用OpenCV3把图片归一为64*64的彩色图片; 读取图片内容(numpy数组,batchszie*64*64*...原创 2019-07-05 20:08:28 · 1449 阅读 · 1 评论 -
TensorFlow Mnist数据集-卷积神经网络实现
本文使用Mnist数据集对卷积神经网络进行一次体验,主要流程为:conv1+pool1-->conv2+pool2-->FC1+Drop-->FC2上述流程使用的参数不同预测的正确率也不同,这个过程就是调参。导入依赖包:import tensorflow as tfimport randomimport numpy as npimport matplotl...原创 2019-07-01 15:13:09 · 654 阅读 · 0 评论 -
【TensorFlow】使用AlexNet网络对图片进行识别分类
AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,更多的更深的神经网络被提出,比如优秀的vgg,GoogLeNet。虽然时隔多年,但AlexNet经典依旧,本文就简单回顾一下AlexNet的网络结构。一、AlexNet网络结构由于当时硬件资源的限制,Hinton使用了两块GPU对AlexNet训练,即把输...原创 2019-07-15 18:32:07 · 9206 阅读 · 4 评论 -
【TesnsorFlow】random.seed() numpy.random.seed() tf.set_random_seed()作用范围、区别
最近在做图片的深度学习时,在程序中遇到了random.seed()、numpy.random.seed()、tf.set_random_seed()三种随机种子。在深度学习中,先确定好随机种子,以后每次随机的结果相同。在每次执行代码时,使每次切分后的训练集、验证集输入结果相同,便于验证学习参数的有效性和查找问题。但是他们有什么异同?带着这些一连串的疑问,开始了实验。以上三种随机种子分属于不...原创 2019-07-11 20:25:54 · 4633 阅读 · 2 评论 -
【TensorFlow】使用卷积神经网络(CNN)进行文本分类
CNN应用在图片分类的场景中较多,可能给大家一个思维定势----CNN貌似只能应用在图片场景,其实CNN也可对文本进行分类。卷积只是特征提取的一种方式,并不是只能处理图像,使用卷积只要能提取特征即可。一、卷积应用在文本分类的思路下图为卷积对文本分类的整体思路:文本分词-->映射成向量:把文本(字符串)转换成数值(对文本进行编码),上图使用7*5的矩阵存储每一句话的编码 ...原创 2019-07-18 17:11:45 · 3859 阅读 · 3 评论 -
【TensorFlow】验证LSTM是否可以选择性遗忘
概述长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的。LSTM可以解决RNN的梯度爆炸问题,时间序列可以比RNN更长。想详细了解循环神经网络的原理可以参考:https://zhuanlan.zhihu.com/p/45289691 https://www.jianshu...原创 2019-08-02 15:52:42 · 464 阅读 · 0 评论 -
【TensorFlow】Mnist数据集 - RNN
一、使用RNN识别手写数字1、什么是RNNRNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。首先我们要明确什么是序列数据,摘取百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。这是时间序列数据的定义,当然这里也可以不是时间,比如文字序列,但总归序列数据有一个特点——后面的数据跟前面的数据...原创 2019-07-30 21:05:03 · 735 阅读 · 0 评论 -
【TensorFlow】TensorBoard的使用(一)
概述TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如:权重W、偏置B、卷积层数、全连接层数等),使用TensorBoader可以很直观的帮我们进行参数的选择。本系列文章一共四篇,由浅入深,以常见的Mnist数据集为实验对象,从实现最简单TensorBoard开始,逐步增加参数、复杂度,最后实...原创 2019-08-06 09:21:20 · 170790 阅读 · 8 评论 -
TensorFlow 深度学习损失函数tf.nn.softmax_cross_entropy_with_logits
在学习深度学习时,遇到一个疑惑,不同的训练场景使用的损失函数有所不同:有的训练场景A使用先softmax再交叉熵:#y为预测值;y_为标签值y=tf.nn.softmax(logits)cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y), axis=1))有的场景B却使用:# logits为预测的输出;y_为...原创 2019-06-28 07:04:27 · 1672 阅读 · 0 评论