
TensorFlow
文章平均质量分 59
Tensorflow的使用方法
Wanderer001
AR/VR软件与硬件技术:图像增强、图像分类、语义分割、目标检测、目标跟踪、风格迁移、强化学习、三维重建、SLAM
展开
-
tf/np.transpose()
第一步:搞清原矩阵的shape,比如下面(2,2,4)第二步:原矩阵顺序为(0,1,2),判定是几步转置。比如,(1,0,2),一步转置。如果是(1,2,0),就是两步转置,分成两个一步就可以了。第三步:把转置后的位置画好。如上,还是,shape还是(2,2,4),但是,一、二维已经换了。你就把现在的相应数据的坐标,一、二维位置互换一下,互换之后找到转置前的矩阵对应坐标,就是那个数了。>>> arrarray([[[ 0, 1, 2, 3], [ 4,原创 2022-03-03 12:05:31 · 339 阅读 · 0 评论 -
tf.reduce_max()
tf.reduce_max( input_tensor, axis=None, name=None,)函数是求按axis方向的最值,axis=0按列求最值,axis=1按行求最值。其中有时候会看到参数没有axis,而是reduction_indices=None,其实两者相等,不过后者是axis废弃的名称。另外该函数等价于np.max:(a, axis=None, out=None, keepdims=False)import tensorflow as tfi.原创 2022-03-03 12:05:40 · 508 阅读 · 0 评论 -
tf.strided_slice
def strided_slice(input_, begin, end, strides=None, begin_mask=0, end_mask=0, ellipsis_mask=0, new_axis_mask=0, ...原创 2022-03-03 12:05:51 · 265 阅读 · 0 评论 -
Tensorflow学习之tf.maximum()
1、返回最大值maximum(x,y,name=None)2、返回 x 和 y 的最大值(即表达式:x > y ? x : y).注意:Maximum 支持广播.参数:x:张量.必须是下列类型之一:half,float32,float64,int32,int64. y:张量.必须与 x 具有相同的类型. name:操作的名称(可选).返回值:该函数将返回一个张量并且与 x 具有相同的类型....原创 2022-03-26 09:21:51 · 1784 阅读 · 0 评论 -
tf.clip_by_value()
tf.clip_by_value(v,a,b)功能:可以将一个张量中的数值限制在一个范围之内。(可以避免一些运算错误)参数:(1)v:input数据(2)a、b是对数据的限制。当v小于a时,输出a;当v大于a小于b时,输出原值;当v大于b时,输出b;例子:import tensorflow as tfv=tf.constant([[1.0,2.0,3.0],[4.0,5.0,6.0]])sess=tf.Session()with sess.as_default...原创 2022-03-26 09:22:08 · 347 阅读 · 0 评论 -
tf.matrix_diag和tf.matrix_inverse的用法(tensorflow如何生成对角矩阵和求逆矩阵)
1.tf.matrix_diag(dia):输入参数是dia,如果输入时一个向量,那就生成二维的对角矩阵,以此类推2.tf.matrix_inverse(A):输入如果是一个矩阵,就是得到逆矩阵,依次类推,只是输入的A中的元素需要是浮点数,比如tf.float32等格式,如果是整形,就会出错哈。例如:矩阵(二维张量)import tensorflow as tf; A = [1, 2, 3]B = tf.matrix_diag(A)print B.eval(session=tf.S.原创 2022-03-26 09:22:23 · 2234 阅读 · 0 评论 -
TypeError: ‘Tensor‘ object does not support item assignment in TensorFlow
a = tf.zeros([3,3])a[:,0:2] = 1TypeError: 'Tensor' object does not support item assignment in TensorFlow报错原因是Tensor不能直接赋值,解决办法。1. 使用变量Tensor来处理可以改成:a = tf.Variable(tf.zeros([3,3]))a[:,0:2].assign(1)2.使用numpy来处理b_list = []b_list.append(.原创 2022-03-27 09:58:10 · 2063 阅读 · 0 评论 -
TensorFlow 保存图片
# 根据路径读取图片img = tf.io.read_file(img_path)# 解码图片,这里应该是解码成了png格式img = tf.image.decode_png(img, channels=1)# 大小缩放img = tf.image.resize(img, [28, 28])# 这一步转换张量数据类型很重要img = tf.cast(img, dtype=tf.uint8)# 编码回图片img = tf.image.encode_png(img)# 保存with tf.原创 2022-03-27 09:58:14 · 1837 阅读 · 0 评论 -
TensorFlow中读取图像数据的三种方式
Update on 2019.06.18从tesorflow1.11之后,(大概是这个版本号),谷歌推出了tf.data模块来读取数据,甚至在tensorflow2.0中,取消了数据队列管道,所以我建议大家学习tf.data模块。未来我也会做详细的tf.data模块使用说明。Upata on 2019.7.22我已经更新了tf.data的使用方法。建议精读,一定能掌握tf.data API的使用方法。地址点击这里本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片..原创 2022-03-27 09:58:20 · 2739 阅读 · 0 评论 -
tf.add_n函数的用法
tf.add_n([p1, p2, p3....])函数是实现一个列表的元素的相加。就是输入的对象是一个列表,列表里的元素可以是向量,矩阵,等例如:[python] view plain copytf.add_n([p1, p2, p3....])函数是实现一个列表的元素的相加。就是输入的对象是一个列表,列表里的元素可以是向量,矩阵,等例如:[python] view plain copyimporttensorflowastf; importnumpyasn...原创 2022-04-01 10:39:14 · 1516 阅读 · 0 评论 -
利用tensorflow训练简单的生成对抗网络GAN
对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的。 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(discriminator)之间博弈的过程。整个网络训练的过程中,两个模块的分工判断网络,直观来看就是一个简单的神经网络结构,输入就是一副图像,输出就是一个概率值,用于判断真假使用(概率值大于0.5那就是真,小于0.5那就是假) 生成网络,同样也可以看成是一个神经网络模型,输入是一组随机数Z,输出是一个图原创 2022-04-08 12:14:12 · 1159 阅读 · 0 评论 -
tf.control_dependencies(control_inputs)
此函数指定某些操作执行的依赖关系返回一个控制依赖的上下文管理器,使用 with 关键字可以让在这个上下文环境中的操作都在 control_inputs 执行with tf.control_dependencies([a, b]): c = .... d = ...在执行完 a,b 操作之后,才能执行 c,d 操作。意思就是 c,d 操作依赖 a,b 操作 with tf.control_dependencies([train_step, variable_averages原创 2022-04-08 12:14:22 · 365 阅读 · 0 评论 -
tf.get_collection()
此函数有两个参数,key和scope。Args:1.key: The key for the collection. For example, the GraphKeys class contains many standard names for collections. 2.scope: (Optional.) If supplied, the resulting list is filtered to include only items whose name attribute matc原创 2022-04-08 12:15:00 · 797 阅读 · 0 评论 -
tf.reduce_mean()
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。reduce_mean(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None)第一个参数input_tensor: 输入的待降维的tensor; 第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值; 第三个参数k.原创 2022-04-08 12:15:11 · 500 阅读 · 0 评论 -
tf.placeholder函数说明
函数形式:tf.placeholder( dtype, shape=None, name=None)参数:dtype:数据类型。常用的是tf.float32,tf.float64等数值类型 shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定) name:名称为什么要用placeholder? Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系...原创 2022-04-08 12:15:19 · 662 阅读 · 1 评论 -
tf.sigmoid()用法
import tensorflow as tfa = tf.constant([[1.0, 2.0], [1.0, 2.0], [1.0, 2.0]])sess = tf.Session()print(sess.run(tf.sigmoid(a)))output:[[ 0.7310586 0.88079703][ 0.7310586 0.88079703][ 0.7310586 0.88079703]]Process finished with exit code 0原创 2022-04-09 13:07:44 · 2344 阅读 · 0 评论 -
利用tensorflow训练简单的生成对抗网络GAN
对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的。 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(discriminator)之间博弈的过程。整个网络训练的过程中,两个模块的分工判断网络,直观来看就是一个简单的神经网络结构,输入就是一副图像,输出就是一个概率值,用于判断真假使用(概率值大于0.5那就是真,小于0.5那就是假)。 生成网络,同样也可以看成是一个神经网络模型,输入是一组随机数Z,输出是一个原创 2022-04-09 13:08:19 · 1202 阅读 · 0 评论 -
tf.broadcast_to()
tf.broadcast_to()tf.broadcast_to()将原始矩阵成倍增加参数:tf.broadcast_to( input, shape, name=None)使用案例:import tensorflow as tfa = [[1, 2, 3], [4, 5, 6]]b = [4, 6]sess = tf.Session()print(sess.run(tf.broadcast_to(a, b)))#[[1 2 3 1 2 3]原创 2022-04-09 13:08:31 · 469 阅读 · 0 评论 -
tf.add_n函数的用法
tf.add_n([p1, p2, p3....])函数是实现一个列表的元素的相加。就是输入的对象是一个列表,列表里的元素可以是向量,矩阵,等例如:[python] view plain copytf.add_n([p1, p2, p3....])函数是实现一个列表的元素的相加。就是输入的对象是一个列表,列表里的元素可以是向量,矩阵,等例如:[python] view plain copyimport tensorflow as tf; import numpy as np;原创 2022-04-09 13:08:38 · 1361 阅读 · 0 评论 -
TensorFlow交叉熵函数(cross_entropy)·理解
交叉熵(Cross Entropy)交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小,常见的Loss函数就是均方平方差(Mean Squared Error),定义如下。image.png注意:tensorflow交叉熵计算函数输入中的logits都不是softmax或sigmoid的输出,而是softmax或sigmoid函数的输入,因为它在函数内部进行sigmoid或softmax操作Tensor.原创 2022-04-09 13:08:47 · 898 阅读 · 0 评论 -
compute_gradients和apply_gradients原理浅析
我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer。这个方法会自动根据loss计算对应variable的导数。示例如下:loss = ...opt = tf.tf.train.GradientDescentOptimizer(learning_rate=0.1)train_op = opt.minimize(loss)init = tf.initialize_all_variables()with tf.Seesion() as原创 2022-04-11 11:56:36 · 2753 阅读 · 0 评论 -
关于tf.train.ExponentialMovingAverage使用的详细解析
tf.train.ExponentialMovingAverage是指数加权平均的求法,具体的公式是 total=a*total+(1-a)*next,下面讲起具体的使用方式:ema = tf.train.ExponentialMovingAverage(0.9) 0.9:就是其衰减因子。 total=ema.apply([next1,next2,nex3...]),这里的传入的参数是一个变量列表,可以同时计算多个加权平均数。 total1=a*total1+(1-a)*next1,tota..原创 2022-04-11 11:56:44 · 590 阅读 · 0 评论 -
神经网络优化(损失函数:自定义损失函数、交叉熵、softmax())
1、前向传播 搭建网络结构,反向传播 训练网络参数。2、激活函数 提高了模型的表达里,使模型更具有表达力。3、神经网络的层数,通常用神经网络的层数和神经网络待优化的参数的个数 来表示,层数 = 隐藏层的层数 + 1个输出层,总参数 = 总W + 总b4、神经网络的优化四个方面:损失函数loss、学习率learning_rate、滑动平均ema、正则化regularization(1)损失函数(loss):预测值(y)与已知答案(y_)的差距。(即前向传播计算出的结果 与 已知标准答案的 差原创 2022-04-12 10:47:06 · 2382 阅读 · 0 评论 -
Tensorflow学习笔记——Summary用法
最近在研究tensorflow自带的例程speech_command,顺便学习tensorflow的一些基本用法。其中tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在tensorboard显示。tf.summary有诸多函数:1、tf.summary.scalar用来显示标量信息,其格式为:tf.summary.scalar(t原创 2022-04-12 10:47:16 · 1940 阅读 · 1 评论 -
Tensorflow小技巧整理:tf.trainable_variables(), tf.all_variables(), tf.global_variables()的使用
tf.trainable_variables(), tf.all_variables(), tf.global_variables()查看变量在使用tensorflow搭建模型时,需要定义许多变量,例如一个映射层就需要权重与偏置。当网络结果越来越复杂,变量越来越多的时候,就需要一个查看管理变量的函数,在tensorflow中,tf.trainable_variables(), tf.all_variables(),和tf.global_variables()可以来满足查看变量的要求,来简单说一下他们的不原创 2022-04-12 10:47:24 · 1806 阅读 · 0 评论 -
tf.get_variable_scope().reuse_variables() 的使用
tf.name_scope()对tf.get_variable_scope().reuse_variables() 不起作用# tf.get_variable_scope().reuse_variables() 的使用import tensorflow as tfwith tf.variable_scope('a1'): print(tf.get_variable_scope().reuse) # with tf.name_scope('a2'): # tf.ge原创 2022-04-12 10:47:35 · 938 阅读 · 0 评论 -
为什么要写 tf.Graph().as_default()
首先,去tensorflow官网API上查询 tf.Graph() 会看到如下图所示的内容:总体含义是说:tf.Graph() 表示实例化了一个类,一个用于 tensorflow 计算和表示用的数据流图,通俗来讲就是:在代码中添加的操作(画中的结点)和数据(画中的线条)都是画在纸上的“画”,而图就是呈现这些画的纸,你可以利用很多线程生成很多张图,但是默认图就只有一张。tf.Graph().as_default() 表示将这个类实例,也就是新生成的图作为整个 tensorflow 运行环境的默原创 2022-04-12 10:47:44 · 380 阅读 · 0 评论 -
TensorFlow函数:tf.image.crop_to_bounding_box
tf.image.crop_to_bounding_box函数tf.image.crop_to_bounding_box( image, offset_height, offset_width, target_height, target_width)定义在:tensorflow/python/ops/image_ops_impl.py.请参阅指南:图像操作>裁剪将图像裁剪到指定的边界框.这个操作从image中裁剪一个矩形部分.返回图像的原创 2022-04-12 10:48:12 · 1897 阅读 · 0 评论 -
tf.newaxis
给tensor增加维度import tensorflow as tfa = tf.range(10,dtype=tf.int32)print(a)b = a[:,tf.newaxis]print(b)a的shape为(10,)b的shape为(10,1)若b = a[tf.newaxis,:],则b的shape为(1,10)原创 2022-04-12 10:48:38 · 1067 阅读 · 0 评论 -
tf.random_shuffle 函数
random_shuffle( value, seed=None, name=None)定义在:tensorflow/python/ops/random_ops.py.请参阅指南:生成常量,序列和随机值>随机张量随机地将张量沿其第一维度打乱.张量沿着维度0被重新打乱,使得每个 value[j] 被映射到唯一一个 output[i].例如,一个 3x2 张量可能出现的映射是:[[1, 2], [[5, 6], [3, 4], ==>.原创 2022-04-13 11:53:48 · 920 阅读 · 0 评论 -
TensorFlow交叉熵函数(cross_entropy)·理解
内容参考:Tensorflow四种交叉熵函数计算公式:tf.nn.cross_entropyTensorFlow四种Cross Entropy算法实现和应用交叉熵(Cross Entropy)交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小,常见的Loss函数就是均方平方差(Mean Squared Error),定义如下。注意:tensorflow交叉熵计算函数输入中的logits都不是softmax或sigmoid原创 2022-04-13 11:55:26 · 1449 阅读 · 0 评论 -
tf.broadcast_to()
tf.broadcast_to()tf.broadcast_to()将原始矩阵成倍增加参数:tf.broadcast_to( input, shape, name=None)使用案例:import tensorflow as tfa = [[1, 2, 3], [4, 5, 6]]b = [4, 6]sess = tf.Session()...原创 2022-05-21 13:16:39 · 579 阅读 · 0 评论 -
tf.local_variables_initializer()
f.local_variables_initializer()返回一个初始化所有局部变量的操作(Op)。初始化局部变量(GraphKeys.LOCAL_VARIABLE)。GraphKeys.LOCAL_VARIABLE中的变量指的是被添加入图中,但是未被储存的变量。关于储存,请了解tf.train.Saver相关内容,在此处不详述,敬请原谅。示例代码与上面的类似:sess.run(tf...原创 2022-05-22 13:01:42 · 846 阅读 · 0 评论 -
tf.losses.get_regularization_loss()
tf.losses.get_regularization_loss函数tf.losses.get_regularization_loss( scope=None, name='total_regularization_loss')定义在:tensorflow/python/ops/losses/util.py。获取总正则化loss。参数:scope:用于过滤...原创 2022-05-21 13:16:30 · 2715 阅读 · 0 评论 -
TensorFlow中的梯度裁剪
本文简单介绍梯度裁剪(gradient clipping)的方法及其作用,不管在 RNN 或者在其他网络都是可以使用的,比如博主最最近训练的 DNN 网络中就在用。梯度裁剪一般用于解决 梯度爆炸(gradient explosion) 问题,而梯度爆炸问题在训练 RNN 过程中出现得尤为频繁,所以训练 RNN 基本都需要带上这个参数。常见的 gradient clipping 有两种做法根...原创 2022-05-23 13:47:57 · 2230 阅读 · 0 评论 -
TensorFlow查看变量的值方法
定义一个变量,直接输出会输出变量的属性,并不能输出变量值。那么怎么输出变量值呢?请看下面得意import tensorflow as tfbiases=tf.Variable(tf.zeros([2,3]))#定义一个2x3的全0矩阵sess=tf.InteractiveSession()#使用InteractiveSession函数biases.initializer.run(...原创 2022-05-24 13:07:02 · 2216 阅读 · 0 评论 -
自动微分和梯度带
在上一个教程中,我们介绍了 "张量"(Tensor)及其操作。本教程涉及自动微分(automatic differentitation),它是优化机器学习模型的关键技巧之一。创建from __future__ import absolute_import, division, print_function, unicode_literals!pip install -q tensor...原创 2022-05-26 08:42:22 · 421 阅读 · 0 评论 -
tf.version
Public API for tf.version namespace.Other MembersCOMPILER_VERSION = '7.3.1 20180303' GIT_VERSION = 'v2.0.0-rc2-26-g64c3d38' GRAPH_DEF_VERSION = 119 GRAPH_DEF_VERSION_MIN_CONSUMER = 0 GRAPH...原创 2022-05-28 12:15:15 · 1253 阅读 · 0 评论 -
tf.config
目录一、模块和函数二、experimental模块1、tf.config.experimental.set_visible_devices2、tf.config.experimental.list_physical_devices3、tf.config.experimental.set_memory_growth4、tf.config.experimental.list_l...原创 2022-05-28 12:14:44 · 2482 阅读 · 2 评论 -
tf.gather_nd()
Gather slices from params into a Tensor with shape specified by indices.tf.gather_nd( params, indices, batch_dims=0, name=None)indices is an K-dimensional integer tensor, best t...原创 2022-05-28 12:14:57 · 413 阅读 · 0 评论