![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TensorFlow
duanlianvip
这个作者很懒,什么都没留下…
展开
-
【TensorFlow】 利用LSTM进行情感分析
深度学习技术发展到今天,在图像、语音、自然语言处理(natural language processing,NLP)领域有很多的应用。由于人类语言的多样性、多意性,使得NLP的难度成倍增加。例如由相同的三个字形成的组合“不怕辣”、“辣不怕”、“怕不辣”、“怕辣不”表达了不同的含义。有些话还要结合当时的语境进行理解,否则得到的结果谬之千里,比如:“中国乒乓球谁也打不过”、“中国足球谁也打不过”。本文...原创 2019-12-25 18:50:48 · 5113 阅读 · 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 · 5395 阅读 · 5 评论 -
【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 · 7873 阅读 · 0 评论 -
【TensorFlow】TensorBoard的使用(一)
概述TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如:权重W、偏置B、卷积层数、全连接层数等),使用TensorBoader可以很直观的帮我们进行参数的选择。本系列文章一共四篇,由浅入深,以常见的Mnist数据集为实验对象,从实现最简单TensorBoard开始,逐步增加参数、复杂度,最后实...原创 2019-08-06 09:21:20 · 171191 阅读 · 8 评论 -
【TensorFlow】Mnist数据集 - RNN
一、使用RNN识别手写数字1、什么是RNNRNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。首先我们要明确什么是序列数据,摘取百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。这是时间序列数据的定义,当然这里也可以不是时间,比如文字序列,但总归序列数据有一个特点——后面的数据跟前面的数据...原创 2019-07-30 21:05:03 · 776 阅读 · 0 评论 -
【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 · 484 阅读 · 0 评论 -
【TensorFlow】tf.name_scope、tf.variable_scope使用
一、tf.name_scope(‘scope_name’)tf.name_scope 主要结合 tf.Variable() 来使用,方便参数命名管理。import tensorflow as tf'''Signature: tf.name_scope(*args, **kwds)Docstring:Returns a context manager for use when d...转载 2019-07-17 15:41:12 · 886 阅读 · 0 评论 -
【TensorFlow】tf.expand_dims()函数
TensorFlow中,想要维度增加一维,可以使用tf.expand_dims(input, dim, name=None)函数。当然,我们常用tf.reshape(input, shape=[])也可以达到相同效果,但是有些时候在构建图的过程中,placeholder没有被feed具体的值,这时就会包下面的错误:TypeError: Expected binary or unicode stri...转载 2019-07-18 19:51:15 · 9460 阅读 · 0 评论 -
【TensorFlow】tf.nn.embedding_lookup()函数
tf.nn.embedding_lookup()函数主要是选取一个张量里面索引对应的元素。tf.nn.embedding_lookup(params, ids):params可以是张量也可以是数组等,id就是对应的索引,其他的参数不介绍。ids为一维:import tensorflow as tfimport numpy as np#c = np.random.random([...转载 2019-07-18 19:40:00 · 668 阅读 · 0 评论 -
【TensorFlow】使用卷积神经网络(CNN)进行文本分类
CNN应用在图片分类的场景中较多,可能给大家一个思维定势----CNN貌似只能应用在图片场景,其实CNN也可对文本进行分类。卷积只是特征提取的一种方式,并不是只能处理图像,使用卷积只要能提取特征即可。一、卷积应用在文本分类的思路下图为卷积对文本分类的整体思路:文本分词-->映射成向量:把文本(字符串)转换成数值(对文本进行编码),上图使用7*5的矩阵存储每一句话的编码 ...原创 2019-07-18 17:11:45 · 4130 阅读 · 3 评论 -
【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 · 4791 阅读 · 2 评论 -
【TensorFlow】TensorBoard的使用(三)
在《【TensorFlow】TensorBoard的使用(二)》中讲述了如何使生成的图更具有可阅读性,但是生成的可阅读参数较少,本文旨在增加TensorBoard的展示信息。主要增加如下信息:权重、偏置等在训练过程中的分布情况:tf.summary.histogram('weights', w) 损失值、准确率随着迭代次数的进行,其指标变化情况:tf.summary.scalar('ac...原创 2019-08-06 14:24:36 · 4534 阅读 · 2 评论 -
【TensorFlow】tf.tile函数
tf.tile()函数是用来对张量(Tensor)进行扩展,作用是对当前张量内的数据进行一定规则的复制。函数定义为:tf.tile( input, multiples, name=None)input是待扩展的张量,multiples是扩展方法。假如input是一个3维(比如:(5, 6, 7)。)的张量。那么mutiples就必须是一个1*3的1维张量...转载 2019-08-02 10:40:48 · 841 阅读 · 0 评论 -
【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 · 2820 阅读 · 2 评论 -
【TensorFlow】对抗生成网络(DCGAN)- 根据MNIST数据集模拟生成数字手写体实战
《文章》介绍了使用全连接构建对抗生成神经网络GAN,本文介绍基于卷积构建对抗生成神经网络DCGAN(深度卷积对抗生成网络,Deep Convolutional Generative Adversarial Networks)。DCGAN的特点判别模型:使用带步长的卷积(strided convolutions)取代了的空间池化(spatial pooling),容许网络学习自己的空间下采样...原创 2019-09-30 19:23:08 · 1274 阅读 · 0 评论 -
【TensorFlow】对抗生成网络(GAN)- 根据MNIST数据集模拟生成数字手写体实战
简介简单的说,对抗生成网络就是真和假之间的对抗。造“假”水平不断提高,以此瞒过“真”的眼睛;辩“真”能力不断提高,以此识别出“假”。两股力量不断博弈,最后达到以假乱真的目的。生成器G(造假) :生成的结果越真越好,可以以假乱真。达到瞒天过海,骗过判别器的目的 判别器D(打假):具有火眼金睛,分辩真假的能力越强越好。分辨出生成和真实的 损失函数:一方面要让判别器分辨能力更强,另一方面要让...原创 2019-09-30 15:34:19 · 1648 阅读 · 3 评论 -
【TensorFlow】4位纯数字或数字字母组合验证码识别
本文做了一个识别简单验证码的小例子,具体思路如下:使用captcha类库随机生成4位纯数字或数字、大小写组合的验证码; 以第一步生成的验证码为训练数据,对3层卷积、2层全连接模型进行训练; 当训练的正确率达到规定的阈值时,保存模型,并停止训练。说明:若验证码为4位纯数字,则模型要完成的分类数为4*10=40分类任务; 若验证码为4为数字+大写+小写组成,则为4*(10+26+26)...原创 2019-09-13 21:32:54 · 4346 阅读 · 0 评论 -
【TensorFlow】用TFRecord方式对数据进行读取(二)
笔记《【TensorFlow】用TFRecord方式对数据进行读取(一)》讲述了如何生成TFRecord文件。那么如何读取生成的文件进行模型训练呢?且往下看。本文读取TFRecord的方法大致如下:构建.tfrecord文件的文件路径列表filenames 使用string_input_producer(filenames)方法生成一个文件名队列filename_queue 使用pre...原创 2019-09-03 17:58:34 · 459 阅读 · 0 评论 -
【TensorFlow】用TFRecord方式对数据进行读取(一)
在做深度学习项目时,在模型训练前,通常要对训练/验证图像进行读取操作。之前博文《TensorFlow 卷积神经网络 - 猫狗识别》使用的是OpenCV读取的方式。使用OpenCV把图像读成矩阵形式当然可以满足模型训练的要求,此方式在处理小批量图像时还可以,如果处理大批量图像,就显得有点慢了。对于大型项目、大批量的图像,经常用TFRecord的方式对数据进行读取。TFRecord是TensorF...原创 2019-08-28 12:57:08 · 2435 阅读 · 0 评论 -
【TensorFlow】tf.app.flags.FLAGS和tf.app.flags.DEFINE_XXX()
tf.app.flags.DEFINE_xxx()就是添加命令行的optional argument(可选参数),而tf.app.flags.FLAGS可以从对应的命令行参数取出参数。tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考:《【Python】optparse模块 - 处理命令行参数》)...转载 2019-08-26 15:52:59 · 755 阅读 · 1 评论 -
【TensorFlow】使用RNN预测时间序列
现有一个时间序列international-airline-passengers.csv,怎么使用RNN来预测呢?本文就对其进行详细的阐述。本时间序列一共144行,数据量很小,但是用其来学习RNN的使用已经足够了。使用RNN预测时间序列的整体思路是:取时间序列的第二列(international-airline-passengers.csv的第一列数据为时间,未在本次程序中使用),...原创 2019-08-07 17:17:42 · 8055 阅读 · 3 评论 -
【TensorFlow】tf.reset_default_graph()函数
如下是官网对tf.reset_default_graph()函数描述的翻译:tf.reset_default_graph函数用于清除默认图形堆栈并重置全局默认图形。注意:默认图形是当前线程的一个属性。该tf.reset_default_graph函数只适用于当前线程。当一个tf.Session或者tf.InteractiveSession激活时调用这个函数会导致未定义的行为。调用此函数后...原创 2019-08-06 16:21:11 · 43452 阅读 · 9 评论 -
【TensorFlow】tf.squeeze函数
定义def squeeze(input, axis=None, name=None, squeeze_dims=None)该函数返回一个张量,这个张量是将原始input中所有维度为1的那些维都删掉的结果。axis可以用来指定要删掉的为1的维度,此处要注意指定的维度必须确保其是1,否则会报错。用法删掉所有维度为1的:# 't' is a tensor of shape [...原创 2019-08-02 11:29:54 · 12678 阅读 · 0 评论 -
【TensorFlow】使用AlexNet网络对图片进行识别分类
AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,更多的更深的神经网络被提出,比如优秀的vgg,GoogLeNet。虽然时隔多年,但AlexNet经典依旧,本文就简单回顾一下AlexNet的网络结构。一、AlexNet网络结构由于当时硬件资源的限制,Hinton使用了两块GPU对AlexNet训练,即把输...原创 2019-07-15 18:32:07 · 9500 阅读 · 4 评论 -
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 · 672 阅读 · 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 · 1555 阅读 · 1 评论 -
TensorFlow Mnist数据集逻辑回归分类任务
导入需要的工具包:# 导入Mnist数据集from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tfmnist = input_data.read_data_sets('data/', one_hot=True)执行结果:Extracting data/train-ima...原创 2019-06-25 20:21:58 · 359 阅读 · 0 评论 -
TensorFlow tf.equal()、tf.cast、tf.reduce_mean函数组合求预测的正确率
tf.equal(x, y)判断x, y是否相等,相等返回true,不相等false假设x为预测的结果,y为正确的标签值。import tensorflow as tfx = [1, 3, 0, 2]y = [1, 4, 2, 2]equal = tf.equal(x, y)with tf.Session() as sess: print(sess.run(equa...转载 2019-06-25 18:53:50 · 1143 阅读 · 0 评论 -
TensorFlow tf.argmax函数
argmax函数定义:argmax(input, axis=None, name=None, dimension=None, output_type=dtypes.int64)参数input:输入Tensor axis:0表示按列,1表示按行 name:名称 dimension:和a...原创 2019-06-25 18:34:47 · 938 阅读 · 0 评论 -
[tensorflow] eval和run的区别
在tensorflow中,eval和run都是获取当前结点的值的一种方式。在使用eval时,若有一个t是Tensor对象,调用t.eval()相当于调用sess.run(t)一下两段代码等效:float_tensor = tf.cast(tf.constant([1, 2, 3]),dtype=tf.float32)t = float_tensor * float_tensor...转载 2019-06-21 18:43:08 · 521 阅读 · 0 评论 -
tensorflow 生成随机数 tf.random_normal 和 tf.random_uniform 和 tf.truncated_normal 和 tf.random_shuffle
转载:https://blog.csdn.net/tz_zs/article/details/75948350tf.random_normal从正态分布中输出随机值。random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)shape:一个一维整数张量或Python数组。代表张量的形状...转载 2019-06-25 15:52:55 · 3847 阅读 · 0 评论 -
TensorFlow tf.random_normal函数说明
函数形式:tf.random_normal( shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)参数:shape: 输出张量的形状,必选 mean: 正态分布的均值,默认为0 stddev: 正态分布的标准差,默认为1.0 dtype: 输出的...原创 2019-06-25 15:18:55 · 4533 阅读 · 0 评论 -
tensorflow变量基本操作流程
1、导入包;2、变量转换成tensor格式;3、开辟一个session,并run。第三步为必须的操作,否则y不会被执行。具体代码如下:Session和变量w、x、表达式y之间的关系如下图(w、x、y在开辟的Session中运行):...原创 2019-06-21 10:28:22 · 230 阅读 · 0 评论 -
TensorFlow tf.reshape()函数
在处理图像数据的时候总会遇到输入图像的维数不符合的情况,此时tensorflow中reshape()就很好的解决了这个问题。函数定义:tf.reshape(tensor, shape, name=None)tensor:要改变维度(形状)的张量; shape:希望变成什么维度; name:操作的名称。TensorFlow中的reshape函数的使用和numpy中的类似,在此就不...原创 2019-07-01 17:43:13 · 2672 阅读 · 0 评论 -
TensorFlow Mnist数据集-神经网络
上篇博客尝试了下使用逻辑回归的方式实现Mnist数据集的预测,本篇打算使用神经网络的方法进行预测,并分别设置1个隐层和2个隐层进行效果比对。1个隐层导入函数库、数据集:from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tf mnist = input_data.r...原创 2019-06-26 18:32:23 · 316 阅读 · 0 评论 -
【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 · 2897 阅读 · 0 评论 -
TensornFlow TypeError: 'method' object is not subscriptable
使用TensorFlow在对图像特征进行全连接操作时,遇到报错:“TypeError: 'method' object is not subscriptable”。经查,是由于函数get_shape未加括号“()”,导致。layer_fc1 = create_fc_layer(input=layer_flat, num_inputs=layer_flat.get_shape[1:4].n...原创 2019-07-05 09:12:37 · 1872 阅读 · 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 · 15804 阅读 · 4 评论 -
TensorFlow tf.one_hot()函数
tf.one_hot函数可以将输入数据转成onehot编码。至于什么是onehot编码?为什么要将输入转成onehot编码?请查看我的另一篇博文:https://blog.csdn.net/duanlianvip/article/details/93492855一、参数def one_hot(indices, depth, on_value...原创 2019-07-09 15:19:12 · 1070 阅读 · 0 评论 -
TensorFlow的get_shape()函数和num_elements() 函数
今天学习图像数组转置的时候,遇到get_shape()、num_elements()函数。经查,get_shape()函数的功能和array的shape属性一样,都是可以得到张量(数组)的维度,如下是TesnorFlow的get_shape()源码(..\Lib\site-packages\tensorflow\python\ops\variables.py): def get_sha...原创 2019-07-03 18:56:22 · 4085 阅读 · 1 评论