
Tensorflow
lilong117194
“The world is not made of strings , but is made of things.”
展开
-
ubuntu下Tensorflow 报错: ImportError: No module named 'matplotlib'
我的问题是: 在使用Jupyter Notebook跑tensorflow程序时,出现报错ImportError: No module named 'matplotlib',然而在spyder(非tensorflow环境)下运行import matplotlib.pyplot as plt就没有问题。然后在网上查了很多资料,大部分都是说: (1)用终端“sudo apt-get install原创 2018-01-23 13:37:42 · 11915 阅读 · 2 评论 -
tensorflow 模型的保存和加载
为了让训练结果可以复用,需要将训练得到的神经网络模型持久化,也就是把模型的参数保存下来,并保证可以持久化后的模型文件中还原出保存的模型。1. 保存模型tensorflow提供了一个API可以方便的保存和还原神经网络的模型。这个API就是tf.train.saver类。import tensorflow as tf# 保存计算两个变量和的模型v1 = tf.Variable(tf....原创 2018-08-16 19:08:58 · 1403 阅读 · 0 评论 -
基于tensorflow的RNN自然语言建模
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Tue Aug 21 09:48:09 2018@author: lilong""&am原创 2018-08-23 11:44:27 · 1053 阅读 · 0 评论 -
mac下的tensorflow报错提示没有models库
原因:目前tf1.0版本的也就是比较新的版本都将models库剔除,当做第三方库来使用了。解决方案: 1. 直接重新下载安装 tf的低的版本 2. 手动安装models库我这里选择的是手动安装models库: 网上查的资料说可以通过提前下载好model文件,然后将models文件放在/Users/lilong/anaconda3/envs/tensorflow/lib/pytho...原创 2018-08-20 17:59:09 · 1032 阅读 · 0 评论 -
tensorflow的tf.transpose()简单使用
tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同维度用的,如果输入张量是二维,就相当是转置。dimension_n是整数,如果张量是三维,就是用0,1,2来表示。这个列表里的每个数对应相应的维度。如果是[2,1,0],就把输入张量的第三维度和第一维度交换。import tensor...原创 2018-08-28 14:52:23 · 1223 阅读 · 0 评论 -
tensorflow中name_scope和variable_scope变量的使用
1. variable_scope的使用首先,使用variable_scope可以很方便的管理get_varibale。如何确定 get_variable 的 prefixed name?1.1 variable scope是可以嵌套的:import tensorflow as tfwith tf.variable_scope("tet1"): var3 = tf....原创 2018-08-21 17:22:48 · 3382 阅读 · 0 评论 -
tensorflow加载训练好的模型实例
首先了解下tensorflow的基础语法知识,这里不再详细说明其细节,只举例学习。tensorflow的tf.transpose()简单使用:tf.reshape(tensor, shape, name=None) 矩阵变形是常用的操作,在Tensorflow中调用方式有多种,例如: 1.tf.reshapetf.reshape(L3, [-1, W4.get_shape().as_l...原创 2018-09-04 14:23:31 · 16309 阅读 · 7 评论 -
Tensorflow模型的保存与恢复的细节
翻译自:http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/在这篇tensorflow教程中,会解释:1) Tensorflow的模型(model)长什么样子?2) 如何保存tensorflow的模型?3) 如何恢复一个tensorflow模型...转载 2018-09-04 15:05:42 · 609 阅读 · 0 评论 -
循环神经网络基础介绍
在应用循环神经网络的过程中,还是会有些地方疑惑,所以还是要回归下问题的本质。学而不思则惘,思而不学则怠。。1. 循环神经网路简介首先循环神经网络的主要用途是处理和预测序列数据。在之前的全链接神经网络或卷积神经网络模型中,网络的结构都是从输入层到隐藏层再到输出层,层与层之间是全链接或者部分连接的,但每层之间的节点是无法连接的。而循环神经网络的隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层...原创 2018-10-08 14:19:44 · 3645 阅读 · 3 评论 -
Tensorflow实现简单神经网络
1. 神经网络参数与tensorflow变量在tensorflow中使用tf.variable定义变量,变量作用是保存和更新神经网络中的参数。并且要给变量初始化一个初始值:weights=tf.Variable(tf.random_normal([2, 3], stddev=2))这里定义了一个2x3的矩阵,矩阵中的元素是均值为0,标核差为2的随机数,这是因为tf.random_n...原创 2018-08-13 13:42:41 · 691 阅读 · 0 评论 -
tensorflow入门基础
tensorflow程序一般分为两个阶段,在第一个阶段需要定义图中所有的计算。在第二个阶段就是执行计算。1. 计算图的使用首先在tensorflow的程序中系统会维护一个默认的计算图,通过tf.get_default_graph()可以获取当前默认的计算图。下面展示了 如何获得一个运算所属的计算图以及默认的计算图:import tensorflow as tfa = tf.c...原创 2018-08-12 18:44:44 · 314 阅读 · 0 评论 -
tensorflow中学习率、过拟合、滑动平均的学习
1. 学习率的设置我们知道在参数的学习主要是通过反向传播和梯度下降,而其中梯度下降的学习率设置方法是指数衰减。 通过指数衰减的学习率既可以让模型在训练的前期快速接近较优解,又可以保证模型在训练后期不会有太大的波动,从而更加接近局部的最优解。 在tensorflow中提供了一个灵活的学习率设置方法,tf.train.exponential_decay函数实现了指数衰减,其实现的原理如下:...原创 2018-08-14 17:46:31 · 3393 阅读 · 1 评论 -
tensorflow中的正则化解决过拟合问题
1. 正则化所谓的过拟合问题指的是当一个模型很复杂时,它可以很好的“记忆”每一个训练数据中的随机噪音的部分而忘记了要去“学习”训练数据中通用的趋势。为了避免过拟合问题,一个非常常用的方法就是正则化。也就是在损失函数中加入刻画模型复杂程度的指标。假设用于损失函数的为J(θ)J(\theta),那此时不直接优化J(θ)J(\theta),而是优化J(θ)+λR(w)J(\theta)+\lam原创 2018-01-23 19:24:27 · 13505 阅读 · 3 评论 -
Tensorflow 改进的MNIST手写体数字识别
上篇简单的Tensorflow解决MNIST手写体数字识别可扩展性并不好。例如计算前向传播的函数需要将所有的变量都传入,当神经网络的结构变得复杂、参数更多时,程序的可读性变得非常差。而且这种方式会导致程序中有大量的冗余代码。还有就是由于没有持久化训练好的模型。当程序退出时,训练好的模型就无法再使用了,这导致得到的模型无法被重用更严重的是神经网络模型的训练时间都比较长,如果在训练程序中程序死机了,那原创 2018-02-01 18:19:42 · 1291 阅读 · 0 评论 -
Tensorflow解决MNIST手写体数字识别
这里给出的代码是来自《Tensorflow实战Google深度学习框架》,以供参考和学习。首先这个示例应用了几个基本的方法:使用随机梯度下降(batch)使用Relu激活函数去线性化使用正则化避免过拟合使用带指数衰减的学习率 使用滑动平均模型来使模型更健壮使用交叉熵损失函数来刻画预测值和真实值之间的差距的损失函数这里的代码是由.ipynb转换的,如下:# cod原创 2018-01-25 15:28:47 · 3159 阅读 · 0 评论 -
Tensorflow中的Protocol Buffer
Protocol Buffer是谷歌公司开发的处理结构化数据的工具。注意这里介绍的结构化数据和大数据中的结构化数据的概念不同,这里的结构化数据指的是拥有多种属性的数据。比如一个用户:包含名字,ID,和E-mail地址3种不同的属性,那他就是一个结构化的数据。当要对这些结构化的用户信息持久化或者进行网络传播时,就需要先将它们进行序列化。也就是将结构化的数据变成数据流的格式,简单说就是变为一个字符串。原创 2018-01-30 14:28:14 · 1397 阅读 · 0 评论 -
Tensorflow中的变量管理
在tensorflow中的函数总包含了神经网络中的所有参数。而当神经网络的结构更加复杂、参数更多时,就需要一个更好的方式传递和管理神经中的参数了。Tensorflow提供了通过变量名称来创建或获取一个变量的机制。通过这个机制,在不同的函数中可以直接变量的名字来使用变量,而不需要将变量通过参数的形式到处传递。Tensorflow中通过变量名称获取变量的机制主要通过tf.get_varible和t...原创 2018-02-18 19:56:09 · 528 阅读 · 0 评论 -
卷积神经网络迁移学习
简单的讲就是将一个在数据集上训练好的卷积神经网络模型通过简单的调整快速移动到另外一个数据集上。随着模型的层数及模型的复杂度的增加,模型的错误率也随着降低。但是要训练一个复杂的卷积神经网络需要非常多的标注信息,同时也需要几天甚至几周的时间,为了解决标注数据和训练时间的问题,就可以使用迁移学习。下面的代码就是介绍如何利用ImageNet数据集训练好的inception-v3模型来解决一个新的图...原创 2018-02-28 18:16:00 · 10814 阅读 · 0 评论 -
LeNet-5 经典卷积网络模型浅析
基本的一些卷积基础可以参考:CNN基础知识(2),这里不再介绍1. LeNet-5 卷积模型LeNet-5 卷积模型可以达到大约99.2%的正确率,LeNet-5 模型总共有7层 下面详细介绍LeNet-5 模型每一层的结构。 第一层,卷积层 这一层的输入是原始的图像像素,LeNet-5 模型接受的输入层大小是32x32x1。第一卷积层的过滤器的尺寸是5x5,深度(卷积核种类...原创 2018-02-25 21:34:41 · 13439 阅读 · 3 评论 -
mac下查看tensorboard中的graph
这里简单介绍下在tensorflow中查看计算图的方法:首先是一个简单的例子:#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Aug 9 09:32:50 2018@author: lilong"""import tensorflow as tf# 定义一个graph类graph = t..原创 2018-08-09 11:00:42 · 2379 阅读 · 2 评论 -
tensorflow入门之损失函数
1. 深层网络介绍激活函数实现去线性化 在没有加入激活函数的时候,一个模型的运算其实就是输出是输入的线性加权和,不管中间有多少的隐层,因为每个隐藏层都是在做一个线性变换,后面不管再加上多少隐藏层,都是在做线性变换,因为线性模型的特点就是任意线性模型的组合任然是线性模型。 比如前向传播的计算公式:a(1)=XW(1),y=a(1)W(2)a(1)=XW(1),y=a(1)W(2)a^{(1)...原创 2018-08-14 09:47:26 · 669 阅读 · 0 评论 -
循环神经网络应用案例
基础介绍可以参考:https://blog.youkuaiyun.com/lilong117194/article/details/82958326https://blog.youkuaiyun.com/lilong117194/article/details/81978203tensorflow的编程堆栈示意图:强烈建议使用以下API编写TensorFlow程序:评估器Estimators,代表一个完整的...原创 2018-10-15 22:46:33 · 3533 阅读 · 1 评论