
TensorFlow Using Chores
文章平均质量分 86
The chores in daily TensorFlow using
FesianXu
腾讯-微信事业群-高级算法工程师, 百度-搜索策略部-前高级算法工程师。 主要从事多模态检索、视频检索、信息检索,大模型落地应用等领域工作。
展开
-
tf.gather, tf.gather_nd和tf.slice
在tensorflow和pytorch中,都有一些函数是用于对张量进行索引的,因为pytorch是基于动态图的,它的张量可以动态的进行操作,不需要在对话(session)中进行,因此可能采用这些方法的必要性没有那么足,但是因为tensorflow是基于静态图的,因此如果在构建计算图的过程中需要对张量进行索引,一般是不能进行简单的slice的,因此引入这些函数就很有必要了,我们这里集中介绍下这些函数...原创 2018-12-29 15:50:59 · 3173 阅读 · 1 评论 -
tensorflow编程实践:结构化你的模型
这篇文章是翻译自《Structuring Your TensorFlow Models》,这篇文章主要描述了在TensorFlow中如何更好地结构化地定义你的网络模型,以便于更好地扩展和调试。我们将会发现,采用这种构建方法,可以将整个模型变得模块化。 如果对这篇文章有着更好的建议,请联系我,谢谢。在TensorFlow中定义你的模型很容易导致一个臃肿复杂,难以维护的代码,这个是一个很糟糕...原创 2018-08-27 10:08:15 · 696 阅读 · 3 评论 -
TensorFlow的体系结构
TensorFlow的体系结构前言* 本文翻译自官方的体系结构介绍,有利于理解TensorFlow系统的整体框架结构,有利于自行后续阅读源码,因此翻译为中文,以飨国人,原文出自TensorFlow Architecture *如有谬误,请联系指正。转载请注明出处。联系方式: e-mail: FesianXu@163.com QQ: 973926198 github: ht...原创 2018-08-22 22:49:03 · 1123 阅读 · 0 评论 -
tensorflow中的image预处理操作函数
TensorFlow中有着一个image模块专门用于处理图片数据的预处理,里面定义了若干常见的图像预处理函数,让我们列举出来,介绍一下,API地为 tf.image.tf.image.adjust_brightness(images, delta) :用于改变原图像的明亮度,也就是在原图像的基础上加上一个delta,于是我们有new_image = old_image+delta。tf...原创 2018-08-17 13:58:02 · 6870 阅读 · 6 评论 -
tensorflow中的位操作
版本号:1.10 TensorFlow支持位操作,在模块tf.bitwise中包含了几个基本的位操作,分别是: 1. bitwise_and() 位与操作 c = a & bc = a & bc = a & b 2. bitwise_or() 位或操作 c=a|bc=a|bc ...原创 2018-08-16 22:40:47 · 1646 阅读 · 0 评论 -
tf.tuple()用于组合多个张量输入
tf.tuple()用于组合多个张量输入组成的列表[tensor1,tensor2,...],然后返回一个计算过后的张量列表[cal_tensor1,cal_tensor2,...],这点和tf.group()是不同的,API手册如:tf.tuple( tensors, name=None, control_inputs=None)ops = tf.tuple...原创 2018-08-15 14:50:34 · 3340 阅读 · 0 评论 -
tf.group()用于组合多个操作
tf.group()用于创造一个操作,可以将传入参数的所有操作进行分组。API手册如:tf.group( *inputs, **kwargs)ops = tf.group(tensor1, tensor2,...) 其中*inputs是0个或者多个用于组合tensor,一旦ops完成了,那么传入的tensor1,tensor2,...等等都会完成了,经常用于组合一些...原创 2018-08-15 14:38:04 · 16774 阅读 · 1 评论 -
TensorFlow高阶函数之 tf.foldl()和tf.foldr()
TensorFlow高阶函数之 tf.foldl()和tf.foldr()在TensorFlow中有着若干高阶函数,如之前已经介绍过了的tf.map_fn(),见博文TensorFlow中的高阶函数:tf.map_fn(),此外,还有几个常用的高阶函数,分别是tf.foldl(),tf.foldr(),我们简要介绍下。tf.foldl()类似于python中的reduce()函数,假设...原创 2018-08-13 19:37:29 · 2392 阅读 · 0 评论 -
tf.nn.softmax_cross_entropy_with_logits 将在未来弃用
访问tensorflow的官网API页面以获得完整信息:tf.nn.softmax_cross_entropy_with_logits。在分类问题中,经常会用到交叉熵损失,如果用tensorflow框架,那么就经常会用到softmax_cross_entropy_with_logits这个函数,如今TensorFlow更新到了r1.8,如今这个函数迎来了一个巨大的变化。这个函数有着两个主要的输...原创 2018-07-05 20:20:47 · 2420 阅读 · 0 评论 -
TensorFlow和Keras中的Crop函数
TensorFlow和Keras中的Crop函数在计算机视觉算法中,有些需要对图像进行裁剪(crop)操作的,如下图所示: 而在TensorFlow和Keras中(针对于TensorFlow版本1.8),提供了一系列的函数用于crop操作,分别是:Keras中的tf.keras.layers.Cropping1D(用于一维信号如语音信号的裁剪)tf.keras.layers....原创 2018-05-28 21:01:10 · 9783 阅读 · 3 评论 -
如何在TensorFlow中使用并行数据加载,解决视频读取问题
如何在TensorFlow中使用并行数据加载,解决视频读取问题前言在TensorFlow中自带有queue和TFrecord以用为异步并行加载数据,以提高整体系统的性能,但是有些情况下,并不需要或者不能用TFrecord,这个时候,可以手动写一个简单的并行加载数据的框架,可以大大提高系统的性能。如有谬误,请联系指正。转载请注明出处。联系方式: e-mail: FesianXu...原创 2018-05-14 16:34:04 · 3473 阅读 · 1 评论 -
PLSTM的TensorFlow实现与解释
PLSTM的TensorFlow实现与解释前言* 我们在上篇文章《TensorFlow中的LSTM源码理解与二次开发》中已经提到了lstm cell在tensorflow中的实现。这篇博文主要介绍了如何在TensorFlow中通过修改lstm cell来定制自己的lstm网络,并且以 《NTU RGB+D: A Large Scale Dataset for 3D Human Acti...原创 2018-04-09 10:12:45 · 2301 阅读 · 10 评论 -
TensorFlow中的LSTM源码理解与二次开发
TensorFlow中的LSTM源码理解与二次开发 前言学习TensorFlow其官方实现是一个很好的参考资料,而LSTM是在深度学习中经常使用的,我们开始探讨下其在TensorFlow中的实现方式,从而学习定制自己的RNN单元。 如有谬误,请联系指正。转载请注明出处。联系方式: e-mail: FesianXu@163.com QQ: 973926198 github...原创 2018-03-21 17:06:24 · 5859 阅读 · 8 评论 -
tf.concat, tf.stack和tf.unstack的用法
tf.concat, tf.stack和tf.unstack的用法tf.concat相当于numpy中的np.concatenate函数,用于将两个张量在某一个维度(axis)合并起来,例如:a = tf.constant([[1,2,3],[3,4,5]]) # shape (2,3)b = tf.constant([[7,8,9],[10,11,12]]) # shape (2,...原创 2018-03-21 12:17:21 · 22689 阅读 · 8 评论 -
tf.squeeze()用于压缩张量中为1的轴
tf.squeeze()用于压缩张量中为1的轴squeeze( input, axis=None, name=None, squeeze_dims=None)该函数会除去张量中形状为1的轴。例子:import tensorflow as tfraw = tf.Variable(tf.random_normal(shape=(1, 3,原创 2018-01-07 14:33:32 · 6035 阅读 · 0 评论 -
tf.transpose()交换张量位置(矩阵转置)
tf.transpose()交换张量位置(矩阵转置)tf.transpose() 是TensorFlow中用于矩阵,张量转置用的,除了可以交换二维矩阵的行和列之外,还可以交换张量的不同轴之间的顺序,函数使用方法如:transpose( a, perm=None, name='transpose')其中,perm参数用于指定交换后的张量的轴是原先张量的轴的位原创 2018-01-07 14:28:46 · 8066 阅读 · 0 评论 -
tf.tile()进行张量扩展
tf.tile()进行张量扩展tf.tile()应用于需要张量扩展的场景,具体说来就是: 如果现有一个形状如[width, height]的张量,需要得到一个基于原张量的,形状如[batch_size,width,height]的张量,其中每一个batch的内容都和原张量一模一样。tf.tile使用方法如:tile( input, multiples, nam原创 2018-01-07 14:21:42 · 22447 阅读 · 0 评论 -
tf.nn.conv2d()使用
conv2d( input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)input是一个4d输入[batch_size, in_height, in_width, n_channels],表示图片的批数,大小和通道。filter原创 2017-12-29 21:54:15 · 8162 阅读 · 0 评论 -
利用numpy数组保存TensorFlow模型的参数
利用numpy数组保存TensorFlow模型的参数 我们在前文《TensorFlow模型的保存和持久化》中,讨论了如何利用TensorFlow自带的Saver类进行模型参数的保存和持久化。利用原生的API,这种方法好处就是非常的简单方便,但是也存在一点不灵活的地方,就是这样进行保存模型参数,加载模型参数的时候需要保证每个参数的名字空间(variable_scope)是完全一样的。也就是说,如果你原创 2017-12-29 21:48:01 · 6860 阅读 · 4 评论 -
Effective TensorFlow Chapter 9: TensorFlow模型原型的设计和利用python ops的高级可视化
Effective TensorFlow Chapter 9: TensorFlow模型原型的设计和利用python ops的高级可视化本文翻译自: 《Prototyping kernels and advanced visualization with Python ops》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。在TensorFlow中,操作的内核都是完全由C++翻译 2017-12-21 20:31:46 · 787 阅读 · 0 评论 -
Effective TensorFlow Chapter 8: 在TensorFlow中的控制流:条件语句和循环
Effective TensorFlow Chapter 8: 在TensorFlow中的控制流:条件语句和循环本文翻译自: 《Control flow operations: conditionals and loops》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。当我们在构建一个复杂模型如RNN(循环神经网络)的时候,我们可能需要使用操作的控制流,比如条件控制和循环等翻译 2017-12-21 19:36:30 · 3986 阅读 · 0 评论 -
tf.one_hot()进行独热编码
tf.one_hot()进行独热编码首先肯定需要解释下什么叫做独热编码(one-hot encoding),独热编码一般是在有监督学习中对数据集进行标注时候使用的,指的是在分类问题中,将存在数据类别的那一类用X表示,不存在的用Y表示,这里的X常常是1, Y常常是0。,举个例子: 比如我们有一个5类分类问题,我们有数据(xi,yi)(x_i, y_i),其中类别yiy_i有五种取值(因为是五类分类问原创 2017-12-16 13:16:15 · 6170 阅读 · 0 评论 -
TensorFlow中的高阶函数:tf.map_fn()
TensorFlow中的高阶函数:tf.map_fn()在TensorFlow中,有一些函数被称为高阶函数(high-level function),和在python中的高阶函数意义相似,其也是将函数当成参数传入,以实现一些有趣的,有用的操作。其中tf.map_fn()就是其中一个。我们这里介绍一下这个函数。首先引入一个TF在应用上的问题:一般我们处理图片的时候,常常用到卷积,也就是tf.nn.co原创 2017-12-15 17:20:41 · 29061 阅读 · 6 评论 -
tf.device()指定运行设备
tf.device()指定运行设备在TensorFlow中,模型可以在本地的GPU和CPU中运行,用户可以指定模型运行的设备。通常,如果你的TensorFlow版本是GPU版本的,而且你的电脑上配置有符合条件的显卡,那么在不做任何配置的情况下,模型是默认运行在显卡下的。运行代码将会提示以下内容: 如果需要切换成CPU运算,可以调用tf.device(device_name)函数,其中devic原创 2017-12-15 16:05:20 · 22159 阅读 · 10 评论 -
Effective TensorFlow Chapter 7: TensorFlow中的执行顺序和控制依赖
Effective TensorFlow Chapter 7: TensorFlow中的执行顺序和控制依赖本文翻译自: 《Understanding order of execution and control dependencies》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。我们知道,TensorFlow是属于符号式编程的,它不会直接运行定义了的操作,而是在计算图中翻译 2017-12-12 11:01:08 · 2572 阅读 · 0 评论 -
Effective TensorFlow Chapter 6: 在TensorFlow中的运算符重载
Effective TensorFlow Chapter 6: 在TensorFlow中的运算符重载本文翻译自: 《Take advantage of the overloaded operators》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。和Numpy一样,TensorFlow重载了很多python中的运算符,使得构建计算图更加地简单,并且使得代码具有可读性。 切翻译 2017-12-12 10:00:21 · 688 阅读 · 0 评论 -
Effective TensorFlow Chapter 5: 在TensorFlow中,给模型喂数据(feed data)
Effective TensorFlow Chapter 5: 在TensorFlow中,给模型喂数据(feed data)本文翻译自: 《Feeding data to TensorFlow》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。TensorFlow被设计可以在大规模的数据情况下高效地运行。所以你需要记住千万不要“饿着”你的TF模型,这样才能得到最好的表现。一般来翻译 2017-12-11 10:06:59 · 2167 阅读 · 0 评论 -
TensorFlow模型的保存和持久化
前言在TensorFlow中,一旦模型训练完成,就需要对其进行持久化操作,也就是将其保存起来,在需要进行对新样本进行测试时,程序加载已经持久化后的模型。在这个过程中就涉及到了模型的持久化操作,在这里简单分享下自己的所见所学。 如有谬误,请联系指正。转载请注明出处。 联系方式: e-mail: FesianXu@163.com QQ: 973926198 github: https://gi原创 2017-10-15 15:18:40 · 4285 阅读 · 2 评论 -
TensorlFlow中的一些坑
RNN/LSTM相关issue link:Saving and Restoring a trained LSTM in Tensor Flow 问题描述:在保存TensorFlow中的RNN/LSTM模型的时候,比保存一般的Variable要特殊,需要在LSTM模型建立之后再定义saver如:### Model Training and Saving code### define the L原创 2017-10-02 11:47:04 · 7951 阅读 · 0 评论 -
Effective TensorFlow Chapter 4: TensorFlow中的广播Broadcast机制
Effective TensorFlow Chapter 4: TensorFlow中的广播Broadcast机制本文翻译自: 《Broadcasting the good and the ugly》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。TensorFlow支持广播机制(Broadcast),可以广播元素间操作(elementwise operations)。正常情翻译 2017-12-10 10:15:35 · 5114 阅读 · 0 评论 -
Effective TensorFlow Chapter 3: 理解变量域Scope和何时应该使用它
Effective TensorFlow Chapter 3: 理解变量域Scope和何时应该使用它本文翻译自: 《Scopes and when to use them》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。在TensorFlow中,变量(Variables)和张量(tensors)有一个名字属性,用于作为他们在图中的标识。如果你在创造变量或者张量的时候,不给他们翻译 2017-12-10 00:48:58 · 979 阅读 · 0 评论 -
Effective TensorFlow Chapter 2: 理解静态和动态的Tensor类型的形状
理解静态和动态的Tensor类型的形状本文翻译自: 《Understanding static and dynamic shapes》, 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。在TensorFlow中,tensor有一个在图构建过程中就被决定的静态形状属性, 这个静态形状可以是没有明确加以说明的(underspecified),比如,我们可以定一个具有形状[None,翻译 2017-12-10 00:19:48 · 2000 阅读 · 0 评论