tensorflow
文章平均质量分 52
-牧野-
这个作者很懒,什么都没留下…
展开
-
Tensorflow数据并行多GPU训练
一. 数据处理将数据写成TFRecord二进制文件格式(参考 https://s0www0tensorflow0org.icopy.site/tutorials/load_data/tfrecord)。写一个TFRecord文件大概有3个流程:1. 把数据转换成TFRecord规定的可接受的三种类型之一,分别是tf.train.BytesList(对应string和byte),tf.train.FloatList(对应float32和float64)和tf.train.Int64List(对原创 2020-07-28 10:59:38 · 2776 阅读 · 0 评论 -
tensorflow模型转pb转mlmodel(mlmodelc)转mnn
1. 转pb和mlmodelimport tensorflow as tffrom tensorflow import graph_utilimport osimport tfcoremlimport networkdef freeze_graph(input_checkpoint, output_graph, output_node_names = 'DepthToSpace'): in_image = tf.placeholder(tf.float32, [1, 512, 51原创 2020-07-08 19:34:48 · 2426 阅读 · 0 评论 -
交叉熵损失函数和均方误差损失函数
交叉熵 分类问题中,预测结果是(或可以转化成)输入样本属于n个不同分类的对应概率。比如对于一个4分类问题,期望输出应该为 g0=[0,1,0,0] ,实际输出为 g1=[0.2,0.4,0.4,0] ,计算g1与g0之间的差异所使用的方法,就是损失函数,分类问题中常用损失函数是交叉熵。交叉熵(cross entropy)描述的是两个概率分布之间的距离,距离越小表示这两个概率越相近,越大...原创 2018-04-19 20:31:18 · 14215 阅读 · 2 评论 -
tensorflow模型持久化保存和加载
模型文件的保存tensorflow将模型保持到本地会生成4个文件:meta文件:保存了网络的图结构,包含变量、op、集合等信息ckpt文件: 二进制文件,保存了网络中所有权重、偏置等变量数值,分为两个文件,一个是.data-00000-of-00001 文件,一个是 .index 文件checkpoint文件:文本文件,记录了最新保持的5个模型文件列表tf中模型保存使用 tf.train.Save...原创 2018-04-23 19:49:26 · 3198 阅读 · 0 评论 -
tensorflow读取训练数据方法
1. 预加载数据 Preloaded data# coding: utf-8import tensorflow as tf# 设计Graphx1 = tf.constant([2, 3, 4])x2 = tf.constant([4, 0, 1])y = tf.add(x1, x2)with tf.Session() as sess: print sess.run(y) #...原创 2018-04-22 18:52:56 · 10559 阅读 · 0 评论 -
tensorflow中 tf.add_to_collection、 tf.get_collection 和 tf.add_n函数
tf.add_to_collection(name, value) 用来把一个value放入名称是‘name’的集合,组成一个列表;tf.get_collection(key, scope=None) 用来获取一个名称是‘key’的集合中的所有元素,返回的是一个列表,列表的顺序是按照变量放入集合中的先后; scope参数可选,表示的是名称空间(名称域),如果指定,就返回名称域中所有放入‘ke...原创 2018-04-12 07:42:15 · 3248 阅读 · 0 评论 -
tensorflow中summary操作
tf中 tensorboard 工具通过读取在网络训练过程中保存到本地的日志文件实现数据可视化,日志数据保存主要用到 tf.summary 中的方法。 tf.summary中summary是tf中的一个py文件,位置在 '/tensorflow/python/summary/' 文件夹下,提供了像tf.summary.scalar、tf.summary.histogram 等方法,用来把graph...原创 2018-04-03 22:24:46 · 9658 阅读 · 1 评论 -
tensorflow中 tf.reduce_mean函数
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。reduce_mean(input_tensor, axis=None, keep_dims=False, na...原创 2018-04-03 08:44:42 · 270269 阅读 · 11 评论 -
tensorflow中常用学习率更新策略
神经网络训练过程中,根据每batch训练数据前向传播的结果,计算损失函数,再由损失函数根据梯度下降法更新每一个网络参数,在参数更新过程中使用到一个学习率(learning rate),用来定义每次参数更新的幅度。过小的学习率会降低网络优化的速度,增加训练时间,过大的学习率可能导致网络参数在最终的极优值两侧来回摆动,导致网络不能收敛。实践中证明有效的方法是设置一个根据迭代次数衰减的学习率,可以兼顾训...原创 2018-04-20 13:09:39 · 22101 阅读 · 1 评论 -
pycharm中tensorflow代码不能自动补全或import红线问题解决
正确安装并配置好pycharm+tensorflow环境之后,可能在pycharm中导入tensorflow会有以下问题:1. " import tensorflow as tf " 会有红线提示找不到tensorflow,但是运行的话可以正常运行2. tensorflow相关的代码不能自动补全, Ctrl+B(查看函数定义快捷键)也定位不到函数定义出现这样的问题可能是因为在pycharm中配置的...原创 2018-04-21 14:24:04 · 9947 阅读 · 6 评论 -
tensorflow中屏蔽输出的log信息方法
tensorflow中可以通过配置环境变量 'TF_CPP_MIN_LOG_LEVEL' 的值,控制tensorflow是否屏蔽通知信息、警告、报错等输出信息。使用方法:import osimport tensorflow as tfos.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' # or any {'0', '1', '2'}TF_CPP_MIN_LOG...原创 2018-04-21 15:13:41 · 21885 阅读 · 8 评论 -
tensorflow中的参数初始化方法
1. 初始化为常量tf中使用tf.constant_initializer(value)类生成一个初始值为常量value的tensor对象。constant_initializer类的构造函数定义:def __init__(self, value=0, dtype=dtypes.float32, verify_shape=False): self.value = value sel...原创 2018-04-21 22:13:30 · 48786 阅读 · 0 评论 -
tensorflow中tf.nn.conv2d()函数
tensorflow中二维卷积函数tf.nn.conv2d()定义:def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC", dilations=[1, 1, 1, 1], name=None)第一个参数input:指需要做卷积的输入图像,它要求是一个Tensor,...原创 2018-09-04 08:33:02 · 15400 阅读 · 4 评论 -
tensorflow中卷积方式SAME和VALID特征图大小计算
卷积方式SAME后特征图大小计算卷积方式: SAME(卷积后的特征图大小跟卷积核大小无关,只跟卷积所用的步长有关,当卷积步长是1时,卷积前后特征图大小保持不变)输入特征图大小:W×H卷积核大小: k×k卷积步长: s×s输出特征图大小: W1×H1W1 = math.ceil(W / s)H1 = math.ceil(H / s)其中math.ceil()是向上取整卷积方...原创 2018-09-02 17:19:55 · 6959 阅读 · 7 评论 -
tensorflow中几种读取图片文件并显示方法
方式一:通过tf.gfile.FastGFile()读取图像文件tf.gfile模块提供了tensorflow中通用的文件I/O操作。tf.gfile.FastGFile(filename, mode)函数用于获取文件操作句柄,类似于python中的文本操作open()函数。第一个参数filename是文件路径,第二个参数mode是文件编码方式(‘r’:UTF-8编码; ‘rb’:非UT...原创 2018-09-05 14:19:00 · 32504 阅读 · 4 评论 -
tensorflow神经网络结构可视化
借助 tensorboard 实现tensorflow中定义的深度神经网络可视化。在程序中实现网络可视化,只需要在加载网络之后,加上这一句:summary_writer = tf.summary.FileWriter('./log/', sess.graph)上边的 sess.graph 就是定义的网络结构了,使用summary.FileWriter 方法保存到本地。或者:...原创 2018-10-11 19:00:41 · 20193 阅读 · 0 评论 -
tensorflow模型继续训练 fineturn
解决tensoflow如何在已训练模型上继续训练fineturn的问题。 训练代码任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解。# -*- coding: utf-8 -*-)import tensorflow as tf# 声明占位变量x、yx = tf.placeholder("float", shape=[...原创 2018-10-12 19:09:26 · 6583 阅读 · 0 评论 -
tensorflow中共享变量 tf.get_variable 和命名空间 tf.variable_scope
tensorflow中有很多需要变量共享的场合,比如在多个GPU上训练网络时网络参数和训练数据就需要共享。tf通过 tf.get_variable() 可以建立或者获取一个共享的变量。 tf.get_variable函数的作用从tf的注释里就可以看出来-- ‘Gets an existing variable with this name or create a new one’。与...原创 2019-10-30 09:19:04 · 3492 阅读 · 0 评论 -
tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行。在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止的时候, 队列必须能被正确地关闭。TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。Coordi...原创 2018-04-01 18:51:57 · 29743 阅读 · 8 评论 -
tensorflow中创建多个计算图(Graph)
tf程序中,系统会自动创建并维护一个默认的计算图,计算图可以理解为神经网络(Neural Network)结构的程序化描述。如果不显式指定所归属的计算图,则所有的tensor和Operation都是在默认计算图中定义的,使用tf.get_default_graph()函数可以获取当前默认的计算图句柄。# -*- coding: utf-8 -*-)import tensorflow as t原创 2018-01-11 21:38:55 · 15451 阅读 · 2 评论 -
tf.random_normal()函数
tf.random_normal()函数用于从“服从指定正态分布的序列”中随机取出指定个数的值。tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) shape: 输出张量的形状,必选 mean: 正态分布的均值,默认为0 stddev: 正态...原创 2018-01-11 21:43:20 · 122589 阅读 · 18 评论 -
超简单tensorflow入门优化程序&&tensorboard可视化
程序1任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解。使用tensorflow编程实现:#-*- coding: utf-8 -*-)import tensorflow as tf# 声明占位变量x、yx = tf.placeholder("float",shape=[None,1])y = tf.plac原创 2018-01-12 18:12:46 · 2033 阅读 · 2 评论 -
tensorflow训练验证码识别模型
tensorflow训练验证码识别模型的样本可以使用captcha生成,captcha在linux中的安装也很简单: pip install captcha 生成验证码:# -*- coding: utf-8 -*-from captcha.image import ImageCaptcha # pip install captchaimport numpy as n...原创 2018-01-08 21:51:13 · 16677 阅读 · 27 评论 -
tensorflow中张量(tensor)的属性——维数(阶)、形状和数据类型
tensorflow的命名来源于本身的运行原理,tensor(张量)意味着N维数组,flow(流)意味着基于数据流图的计算,所以tensorflow字面理解为张量从流图的一端流动到另一端的计算过程。tensorflow中的所有数据如图片、语音等都是以张量这种数据结构的形式表示的。张量是一种组合类型的数据类型,表示为一个多维数组,通用的表示形式为[T1,T2,T3,…Tn] ,其中原创 2018-01-09 20:47:50 · 29779 阅读 · 10 评论 -
Python创建CRNN训练用的LMDB数据库文件
CRNN简介CRNN由 Baoguang Shi, Xiang Bai, Cong Yao提出,2015年7月发表论文:“An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition”,链接地址:https:...原创 2018-01-26 12:11:49 · 9449 阅读 · 16 评论 -
tensorflow中常量(constant)、变量(Variable)、占位符(placeholder)和张量类型转换reshape()
常量 constanttf.constant()函数定义:def constant(value, dtype=None, shape=None, name="Const", verify_shape=False)value: 符合tf中定义的数据类型的常数值或者常数列表;dtype:数据类型,可选;shape:常量的形状,可选;name:常量的名字,可选;verif原创 2018-01-09 21:52:33 · 19458 阅读 · 0 评论 -
在 Ubuntu 16.04 中安装支持 CPU 和 GPU 的 Google TensorFlow 神经网络软件
TensorFlow 是用于机器学习任务的开源软件。它的创建者 Google 希望提供一个强大的工具以帮助开发者探索和建立基于机器学习的应用,所以他们在去年作为开源项目发布了它。TensorFlow 是一个非常强大的工具,专注于一种称为深层神经网络deep neural network(DNN)的神经网络。深层神经网络被用来执行复杂的机器学习任务,例如图像识别、手写识别、自然语言处理、聊天机器人等转载 2017-09-13 23:03:40 · 1027 阅读 · 0 评论 -
tensorflow中使用tf.ConfigProto()配置Session运行参数&&GPU设备指定
tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置: config = tf.ConfigProto(allow_soft_placement=True, allow_soft_placement=True)config.gpu_options.per_process_gpu_memory_fraction = 0.4 #占用40...原创 2018-01-18 21:08:36 · 71474 阅读 · 11 评论 -
ubuntu安装 tensorflow GPU
安装支持GPU的tensorflow前提是正确安装好了 CUDA 和 cuDNN。 CUDA 和 cuDNN的安装见 Nvidia 官网和各种安装教程,应该很容易,重点是要选准了支持自己GPU的 CUDA 版本,再选准支持 该 CUDA 版本的 cuDNN版本。关于CUDA:tensorflow-gpu 1.5 及以上版本要求 CUDA 版本为9.0;如果本机装的 CUDA版本是8,安装了 ten...原创 2018-03-19 08:13:25 · 5365 阅读 · 0 评论 -
tensorflow命令行参数:tf.app.flags.DEFINE_string、tf.app.flags.DEFINE_integer、tf.app.flags.DEFINE_boolean
tf 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数,相当于对Python中的命令行参数模块optpars(参考: python中处理命令行参数的模块optpars )做了一层封装。optpars中的参数类型是通过参数 “type=xxx” 定义的,tf中每个合法类型都有对应的 “DEFINE_xxx”函数。常用:tf.app.flags.DEFINE_strin...原创 2018-03-22 22:18:32 · 36076 阅读 · 8 评论 -
tf.cast()数据类型转换
tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32。cast定义:cast(x, dtype, name=None)第一个参数 x: 待转换的数据(张量)第二个参数 dtype: 目标数据类型第三个参数 name: 可选参数,定义操作的名称int32转换为float32:impo...原创 2018-03-29 19:40:08 · 142927 阅读 · 9 评论 -
tf.device()指定tensorflow运行的GPU或CPU设备
在tensorflow中,我们可以使用 tf.device() 指定模型运行的具体设备,可以指定运行在GPU还是CUP上,以及哪块GPU上。设置使用GPU使用 tf.device('/gpu:1') 指定Session在第二块GPU上运行:import tensorflow as tfwith tf.device('/gpu:1'): v1 = tf.constant([1.0, 2....原创 2018-03-29 19:51:43 · 75345 阅读 · 8 评论 -
Tensorflow 模型文件结构、模型中Tensor查看
tensorflow训练后保存的模型主要包含两部分,一是网络结构的定义(网络图),二是网络结构里的参数值。1. .meta文件.meta 文件以 “protocol buffer”格式保存了整个模型的结构图,模型上定义的操作等信息。这个文件保存了网络结构的定义。例如 model.ckpt-3072.meta ,大小是 2.9 MB。2. .data-00000-of-00001 文件和 .in...原创 2018-03-23 21:40:23 · 16153 阅读 · 1 评论 -
tensorflow中tensor的静态维度和动态维度
tf中使用张量(tensor)这种数据结构来表示所有的数据,可以把张量看成是一个具有n个维度的数组或列表,张量会在各个节点之间流动,参与计算。张量具有静态维度和动态维度。在图构建过程中定义的张量拥有的维度是静态维度,这个维度可以被定义为不确定的,例如定义一个tensor的维度是[None,10],表示这个tensor的第一个维度是不确定的,可以是任意的,None 表示具体维度值要在图运行过程中确定...原创 2018-03-31 10:36:15 · 8699 阅读 · 2 评论 -
tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
tensorflow数据读取机制tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算。具体来说就是使用一个线程源源不断的将硬盘中的图片数据读入到一个内存队列中,另一个线程负责计算任务,所需数据直接从内存队列中获取。tf在内存队列之前,还设立了一个文件名队列,文件名队列存放的是参与训练的文件名,要训练 N个epoch,则文件名队列中就含有N...原创 2018-04-01 12:05:13 · 29746 阅读 · 16 评论 -
tensorflow中有向图(计算图、Graph)、上下文环境(Session)和执行流程
计算图(Graph)Tensorflow是基于图(Graph)的计算框架,图的节点由事先定义的运算(操作、Operation)构成,图的各个节点之间由张量(tensor)来链接,Tensorflow的计算过程就是张量(tensor)在节点之间从前到后的流动传输过程,如下图示例:有向图中,节点通常代表数学运算,边表示节点之间的某种联系,它负责传输多维数据(Tensors)。节原创 2018-01-11 21:29:13 · 8302 阅读 · 0 评论