tensorflow学习笔记
文章平均质量分 54
深度学习开源框架,Google大腿撑腰
u012436149
这个作者很懒,什么都没留下…
展开
-
tensorflow(四十八): 使用tensorboard可视化训练出的文本embedding
tensorboard可视化训练好的embedding原创 2022-10-01 23:14:19 · 793 阅读 · 1 评论 -
tensorflow(四十七):tensorflow模型持久化
模型保存from tensorflow import graph_utilgraph_def = tf.get_default_graph().as_graph_def()# variable 搞成常量节点放到 graph_def 中。并按照 输出 节点进行剪枝constant_graph = graph_util.convert_variables_to_constants(sess, graph_def, .原创 2020-11-13 16:53:00 · 521 阅读 · 0 评论 -
tensorflow(四十六):传op name 还是tensor name
本文章对需要传 name 的一些api进行总结,明确下应该传的是 op name 还是 tensor namedef convert_variables_to_constants(sess, input_graph_def, output_node_names, # 这里传的是 op name va原创 2020-11-13 16:01:58 · 610 阅读 · 0 评论 -
tensorflow学习笔记(四十五):sess.run(tf.global_variables_initializer()) 做了什么?
当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数。那么,它到底做了些什么?一步步看源代码:global_variables_initializer 返回一个用来初始化 计算图中 所有global variable的 op。 这个op 到底是啥,还不清楚。函原创 2017-10-20 09:05:13 · 77147 阅读 · 20 评论 -
tensorflow学习笔记(四十四):用Queue保存更复杂的关系
当查看 tensorflow 中提供的 Queue 的类的时候,会发现有个 dtypes 参数,这个参数代表 Queue 中元素是什么类型的,如果 dtypes=[tf.string, tf.int64] ,这个表示,Queue 中每个元素是 (string, int) 。import tensorflow as tfqueue = tf.FIFOQueue(capacity=100, dtypes原创 2017-10-17 12:22:36 · 869 阅读 · 0 评论 -
tensorflow学习笔记(四十三):使用 tfdbg 来 debug
由于 tensorflow 在训练的时候是在后台运行的,所以使用 python 的 debug 工具来 debug tensorflow 的执行过程是不可行的,为此,官方提供了一款debug 工具,名为 tfdbg有很多人觉得,为了 debug tensorflow 的计算过程又要学习一个新的工具,很烦。但其实不然,tfdbg 用起来是十分简单的。以至于简单到我们只需要增加两行代码,就可以原创 2017-08-22 14:14:13 · 9365 阅读 · 5 评论 -
tensorflow:使用tfrecords时的注意事项
使用 tfrecords 时的注意事项确保 string_input_producer 中的文件名字是正确的。 string_input_producer(file_names, num_epochs=100000, shuffle=True) 当指定 num_epochs 时,在初始化模型参数的时候,一定要 记得 tf.local_variables_initializer().run() ,原创 2017-08-05 12:09:01 · 4927 阅读 · 1 评论 -
tensorflow自定义op:梯度
tensorflow自定义op,梯度 tensorflow 是 自动微分的,但是如果你不给它定义微分方程的话,它啥也干不了在使用 tensorflow 的时候,有时不可避免的会需要自定义 op,官方文档对于 定义 op 的前向过程介绍挺详细,但是对于 梯度 的介绍有点随意。 本文主要介绍在 python 端,和在 c++ 端对 op 的梯度进行定义。1.使用python定义op的梯度第一个例子原创 2017-07-09 21:39:47 · 11174 阅读 · 3 评论 -
tensorflow自定义op:work_shard
强行解释 work_shard 在学习 tensorflow 自定义 op 的时候碰到的,google 了一下,也没有找到详细的介绍,难道是姿势不对?? 通过看 了一些示例,这里打算强行解释一波。概览如果想用 work shard,首先 代码能够并行化计算。work shard 是一个代码并行化工具。不用自己头疼的写多线程代码了。什么样的代码能够并行化计算 —> 每一个输出数据都能原创 2017-07-09 15:44:33 · 3385 阅读 · 0 评论 -
tensorflow:自定义op简单介绍
tensorflow 自定义 op本文只是简单的翻译了 https://www.tensorflow.org/extend/adding_an_op 的简单部分,高级部分请移步官网。可能需要新定义 c++ operation 的几种情况:现有的 operation 组合不出来你想要的 op现有的 operation 组合 出来的 operation 十分低效如果你想要手动融合一些操作。为了实翻译 2017-06-26 13:32:55 · 31521 阅读 · 12 评论 -
tensorflow:上下文管理器 与 name_scope, variable_scope
with block 与上下文管理器上下文管理器:意思就是,在这个管理器下做的事情,会被这个管理器管着。熟悉一点python的人都知道,with block与上下文管理器有着不可分割的关系。为什么呢?因为with Object() as obj:的时候,会自动调用obj对象的__enter__()方法,而当出去with block的时候,又会调用obj对象的__exit__方法。正是利用...原创 2017-06-21 19:35:38 · 9133 阅读 · 5 评论 -
tensorflow:AToolDeveloperGuideToTFModelFIles
Tensorflow Model Files最近闲来无聊,想深入理解一下tensorlfow,也不知从何下手,突然间发现了官方文档的Extend模块下还有这个一片文章 A Tool Developer's Guide to TensorFlow Model Files, 所以就打算边翻译,边学习了。水平有限,如发现错误,请不吝指出!翻译开始大多数用户不需要关心tensorflow在硬盘上存储数据的细翻译 2017-06-09 18:12:32 · 2247 阅读 · 0 评论 -
tensorflow学习笔记(四十二):输入流水线
tensorflow 如何读取数据tensorflow有三种把数据放入计算图中的方式: * 通过feed_dict * 通过文件名读取数据:一个输入流水线 在计算图的开始部分从文件中读取数据 * 把数据预加载到一个常量或者变量中第一个和第三个都很简单,本文主要介绍的是第二种. 考虑一个场景:我们有大量的数据,无法一次导入内存,那我们一次就只能导入几个nimi-batch,然后进行训练,然后再原创 2017-05-16 21:16:09 · 9630 阅读 · 0 评论 -
tensorflow学习笔记(四十一):control dependencies
tensorflowtf.control_dependencies()设计是用来控制计算流图的,给图中的某些计算指定顺序。比如:我们想要获取参数更新后的值,那么我们可以这么组织我们的代码。opt = tf.train.Optimizer().minize(loss)with tf.control_dependencies([opt]): updated_weight = tf.identity原创 2017-05-14 23:48:46 · 25183 阅读 · 2 评论 -
tensorflow学习笔记(四十):tensorflow语音识别 及 python音频处理库
tensorflow 语音识别最近在做语音识别的项目,现在项目告一段落,就把最近碰到的东西做一个总结。一些资料 https://medium.com/@ageitgey/machine-learning-is-fun-part-6-how-to-do-speech-recognition-with-deep-learning-28293c162f7a https://distill.p...原创 2017-05-04 20:22:43 · 34597 阅读 · 2 评论 -
tensorflow学习笔记(三十九) : 双向rnn (BiRNN)
双向RNN实际上仅仅是两个独立的RNN放在一起, 本博文将介绍如何在tensorflow中实现双向rnn单层双向rnn 单层双向rnn (cs224d) tensorflow中已经提供了双向rnn的接口,它就是tf.nn.bidirectional_dynamic_rnn(). 我们先来看一下这个接口怎么用.bidirectional_dynamic_rnn( ce...原创 2017-05-02 13:53:01 · 40899 阅读 · 11 评论 -
tensorflow学习笔记(三十八):损失函数加上正则项
tensorflow Regularizers在损失函数上加上正则项是防止过拟合的一个重要方法,下面介绍如何在TensorFlow中使用正则项.tensorflow中对参数使用正则项分为两步: 1. 创建一个正则方法(函数/对象) 2. 将这个正则方法(函数/对象),应用到参数上如何创建一个正则方法函数tf.contrib.layers.l1_regularizer(scale, scope=N原创 2017-04-20 16:02:32 · 45133 阅读 · 2 评论 -
tensorflow学习笔记(三十七):如何自定义LSTM的initial state
如何初始化LSTM的stateLSTM 需要 initial state。一般情况下,我们都会使用 lstm_cell.zero_state()来获取 initial state。但有些时候,我们想要给 lstm_cell 的 initial state 赋予我们想要的值,而不是简单的用 0 来初始化,那么,应该怎么做呢? 当然,当我们设置了state_is_tuple=False的时候,是很简单原创 2017-03-21 17:11:37 · 14046 阅读 · 2 评论 -
tensorflow学习笔记(三十六):learning rate decay
learning rate decay在训练神经网络的时候,通常在训练刚开始的时候使用较大的learning rate, 随着训练的进行,我们会慢慢的减小learning rate。对于这种常用的训练策略,tensorflow 也提供了相应的API让我们可以更简单的将这个方法应用到我们训练网络的过程中。接口 tf.train.exponential_decay(learning_rate, glo原创 2017-03-14 21:39:26 · 34083 阅读 · 0 评论 -
tensorflow学习笔记(三十五):control flow
control flowtf.cond(pred, fn1, fn2, name=None)等价于:res = fn1() if pred else fn2()注意:pred不能使 python bool, pred是个标量Tensor 官网例子z = tf.mul(a, b)result = tf.cond(x < y, lambda: tf.add(x, z), lambda: tf.squ原创 2017-03-07 21:55:38 · 13938 阅读 · 2 评论 -
tensorflow学习笔记(三十四):Saver(保存与加载模型)
Savertensorflow 中的 Saver 对象是用于 参数保存和恢复的。如何使用呢? 这里介绍了一些基本的用法。 官网中给出了这么一个例子:v1 = tf.Variable(..., name='v1')v2 = tf.Variable(..., name='v2')# Pass the variables as a dict:saver = tf.train.Saver({'v1'原创 2017-02-23 09:41:40 · 17837 阅读 · 4 评论 -
tensorflow学习笔记(三十三):ExponentialMovingAverage
ExponentialMovingAverageSome training algorithms, such as GradientDescent and Momentum often benefit from maintaining a moving average of variables during optimization. Using the moving averages for ev原创 2017-02-22 14:09:24 · 23694 阅读 · 0 评论 -
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积")
conv_transposedeconv解卷积,实际是叫做conv_transpose, conv_transpose实际是卷积的一个逆向过程,tf 中, 编写conv_transpose代码的时候,心中想着一个正向的卷积过程会很有帮助。想象一下我们有一个正向卷积: input_shape = [1,5,5,3] kernel_shape=[2,2,3,1] strides=[1,2,2,1]原创 2017-02-18 22:43:22 · 41940 阅读 · 8 评论 -
tensorflow学习笔记(三十一):构建多GPU代码
构建多GPU代码结构先构建单GPU代码写个函数multi_gpu_model(num_gpus)来生成多GPU代码,并将对象保存在collection中feed datarun如何构建单GPU代码见之前博客构建TF代码 不要在单GPU代码中创建optimizer op,因为是multi gpu,所以参数更新的操作是所有的GPU计算完梯度之后,才进行更新的。如何实现multi_gpu_mo原创 2017-01-05 14:35:40 · 17817 阅读 · 2 评论 -
tensorflow学习笔记(三十):tf.gradients 与 tf.stop_gradient() 与 高阶导数
gradienttensorflow中有一个计算梯度的函数tf.gradients(ys, xs),要注意的是,xs中的x必须要与ys相关,不相关的话,会报错。 代码中定义了两个变量w1, w2, 但res只与w1相关#wrongimport tensorflow as tfw1 = tf.Variable([[1,2]])w2 = tf.Variable([[3,4]])res = tf.m原创 2016-12-28 09:46:11 · 55508 阅读 · 8 评论 -
tensorflow学习笔记(二十九):merge_all引发的血案
在训练深度神经网络的时候,我们经常会使用Dropout,然而在test的时候,需要把dropout撤掉.为了应对这种问题,我们通常要建立两个模型,让他们共享变量。详情.也可以通过设置 train_flag, 这里只讨论第一个方法可能会碰到的问题.为了使用Tensorboard来可视化我们的数据,我们会经常使用Summary,最终都会用一个简单的merge_all函数来管理我们的Summary...原创 2016-12-27 11:55:19 · 40411 阅读 · 17 评论 -
tensorflow学习笔记(二十八):collection
tensorflow collectiontensorflow的collection提供一个全局的存储机制,不会受到变量名生存空间的影响。一处保存,到处可取。接口介绍#向collection中存数据tf.Graph.add_to_collection(name, value)#Stores value in the collection with the given name.#Note tha原创 2016-12-27 11:53:06 · 22973 阅读 · 0 评论 -
tensorflow学习笔记(二十七):leaky relu
tensorflow leaky relu在tensorflow 0.12.0及之前,都没有内置的leaky relu函数,那么我们如何实现leaky relu函数呢?方法1def relu(x, alpha=0., max_value=None): '''ReLU. alpha: slope of negative section. ''' negative_part原创 2016-12-26 21:27:24 · 27528 阅读 · 0 评论 -
tensorflow学习笔记(二十六):构建TF代码
如何构建TF代码batch_size: batch的大小 mini_batch: 将训练样本以batch_size分组 epoch_size: 样本分为几个min_batch num_epoch : 训练几轮写一个将数据分成训练集,验证集和测试集的函数train_set, valid_set, test_set = split_set(data)最好写一个管理数据的对象,将原始数据转化成min原创 2016-12-23 19:36:45 · 19776 阅读 · 0 评论 -
tensorflow学习笔记(二十五):ConfigProto&GPU
tensorflow ConfigPrototf.ConfigProto一般用在创建session的时候。用来对session进行参数配置with tf.Session(config = tf.ConfigProto(...),...)#tf.ConfigProto()的参数log_device_placement=True : 是否打印设备分配日志allow_soft_placement=Tr原创 2016-12-23 11:53:37 · 71954 阅读 · 9 评论 -
tensorflow学习笔记(二十四):Bucketing
tensorflow bucketstensorflow的编码原则是,先构建计算图,然后再去执行计算图(sess.run()).这就会导致一个问题,我们无法在运行的过程中动态的更改图的结构.我们能做的就是,先构建出完整的图,然后可以去执行其子图. tensorflow中的bucket就是基于这么一种思想.seq2seq简单介绍在seq2seq场景中,输入和输出的sequence的长度往往是变长的.假原创 2016-12-22 10:56:05 · 9438 阅读 · 0 评论 -
tensorflow学习笔记(二十三):variable与get_variable
Variabletensorflow中有两个关于variable的op,tf.Variable()与tf.get_variable()下面介绍这两个的区别tf.Variable与tf.get_variable()tf.Variable(initial_value=None, trainable=True, collections=None, validate_shape=True, caching_原创 2016-12-16 19:14:23 · 73430 阅读 · 10 评论 -
tensorflow学习笔记(二十二):Supervisor
如何使用Supervisor在不使用Supervisor的时候,我们的代码经常是这么组织的variables...ops...summary_op...merge_all_summariesaverinit_opwith tf.Session() as sess: writer = tf.tf.train.SummaryWriter() sess.run(init) sa原创 2016-11-25 22:21:09 · 25083 阅读 · 0 评论 -
tensorflow学习笔记(二十一):tensorflow可视化
tensorflow的可视化是使用summary和tensorboard合作完成的.基本用法首先明确一点,summary也是op.输出网络结构with tf.Session() as sess: writer = tf.summary.FileWriter(your_dir, sess.graph)命令行运行tensorboard --logdir your_dir,然...原创 2016-11-16 11:30:56 · 38756 阅读 · 1 评论 -
tensorflow学习笔记(二十):分布式注意事项
版本 tensorflow0.11.0适用于 between-graph&synchronous(1) 一定要指定 chief task(2) chief task 要增加两个op:init_token_op = opt.get_init_tokens_op()chief_queue_runner = opt.get_chief_queue_runner()(3) c...原创 2016-11-15 17:28:13 · 5161 阅读 · 4 评论 -
tensorflow学习笔记(十九):分布式Tensorflow
最近在学习怎么分布式Tensorflow训练深度学习模型,看官网教程看的云里雾里,最终结合着其它资料,终于对分布式Tensorflow有了些初步了解.gRPC (google remote procedure call)分布式Tensorflow底层的通信是gRPC gRPC首先是一个RPC,即远程过程调用,通俗的解释是:假设你在本机上执行一段代码num=add(a,b),它调用了一个过...原创 2016-11-12 15:14:33 · 24692 阅读 · 17 评论 -
tensorflow学习笔记(十八):Multiple GPUs
Distribuited tensorflowMultiple GPUs如何设置训练系统(1)每个GPU上都会有model的副本 (2)对模型的参数进行同步更新抽象名词计算单个副本inference和 gradients 的函数称之为tower,使用tf.name_scope()为tower中的每个op_name加上前缀使用tf.device('/gpu:0') 来指定tower中op的运算设原创 2016-11-11 10:33:26 · 8310 阅读 · 3 评论 -
tensorflow学习笔记(十七):name&variable scope
水平有限,如有错误,请指正!在tensorflow中,有两个scope, 一个是name_scope一个是variable_scope,这两个scope到底有什么区别呢? 先看第一个程序:with tf.name_scope("hello") as name_scope: arr1 = tf.get_variable("arr1", shape=[2,10],dtype=tf...原创 2016-11-08 13:49:58 · 39463 阅读 · 11 评论 -
tensorflow学习笔记(十六):rnn_cell.py
rnn_cell水平有限,如有错误,请指正!本文主要介绍一下 tensorflow.python.ops.rnn_cell 中的一些类和函数,可以为我们编程所用run_cell._linear()def _linear(args, output_size, bias, bias_start=0.0, scope=None):args: list of tensor [batch_size, size原创 2016-11-03 22:08:49 · 10711 阅读 · 2 评论 -
tensorflow学习笔记(十五): variable scope
variable scopetensorflow 为了更好的管理变量,提供了variable scope机制 官方解释: Variable scope object to carry defaults to provide to get_variable.Many of the arguments we need for get_variable in a variable store are原创 2016-11-03 10:25:10 · 31312 阅读 · 4 评论