tensorflow常用函数

        Tensorflow的名字中包含两个概念-tensor和flow。Tensor是张量的意思,在tensorflow中可以被简单的理解为数组。Flow就是张量之间通过计算相互转化的过程。分别介绍tensorflow的计算模型、数据模型和运行模型。

1.计算模型

        Tensorflow是一个通过计算图的形式啦表述计算的编程系统,Tensorflow将所有的计算转化为计算图,图中的每一个计算都是计算图的一个节点,并且不同计算图上的张量和运算都不会共享。

函数:

        tf.get_default_graph函数可以获取当前默认的计算图。

        tf.Graph函数用来生成新的计算图。

        tf.Graph.device函数来指定运行计算的设备。

2.数据模型

        张量可以被简单理解为多位数组。在tensorflow中,张量并非保存数字,而是保存的是如何得到这些数字的运算过程。一个张量中主要包含三个属性:名字、维度、类型。如下图所示。


        add:0,表示result这个变量是节点“add”输出的第一个结果,编号从0开始。shape表示的是张量的维度。dtype表示属性的类型。

3.运行模型

        Tensorflow中的session来执行定义好的运算。session拥有并管理Tensorflow程序运行时的所有资源。session也有先定义后使用的规则,但是在程序的结尾处要close了。

使用方法:

sess = tf.Session() #创建一个会话

sess.run()  #将进行会话的运算

sess.close(0 #关闭会话

如果不想使用close也可以使用with函数。如:

with tf.Session() as sess:

    sess.run()

tf.Tensor.eval函数来计算一个张量的取值。

tf.InteractiveSession函数会自动将生成的会话注册为默认会话。

Tensorflow常用函数:

tf.Variable() #创建一个变量

tf.matmul() #实现矩阵相乘

常见随机数生成函数:

(1)tf.random_normal() #正太随机函数,主要参数为平均值、标准差、取值类型

例:tf.random_normal([2,3],stddev=2),2*3矩阵,标准差为2

(2)tf.truncated_normal() #正太分布随机函数,如果随机出来的值偏离平均值超过2个标准差,那么这个数将会被重新随机

(3)tf.random_uniform() #平均分布,主要参数为最小、最大取值,取值类型

(4)tf.random_gamma() #Gamma分布,主要参数为形状参数alpha、尺度参数beta、取值类型

常见常熟生成函数:

(1)tf.zeros()  #生成全0的数组

例:tf.zeros([2,3],int32)

(2)tf.ones() #生成全1的数组

例:tf.ones([2,3],int32)

(3)tf.fill()产生一个全部为给定数字的数组

例:tf.fill([2,3],2)

(4)tf.constant() #产生一个给点值得常量

例:tf.constant([2,3])

tf.initialize_all_variables() #初始化所有的变量,tensorflow中定义时初始化变量是个伪初始化变量,需要进行改函数的初始化才能生效。

 卷积神经网络:

tf.nn.max_pool(value,ksize,stridies,padding,name=None)    #value一边是feature map,形式是一个四维变量为[batch,height,width,channels],ksize表示池化窗口的大小,是一个四维变量[1,height,width,1],strdies是步长,[1,stride,stride,1],padding取‘VALID’或者‘SAME’。

tf.nn.lrn(input,depth_radius=None,bias=None,alpha=None,beta=None)    #是一个数据增强作为relu激励之后防止数据过拟合而提出的一种处理方法,局部相应标准化。基本上会被DROPOUT方法所替代。

tf.nn.bias_add(value,bias,name=None)    #将偏差项bias加入到value上去

tf.image.decode_jpeg(image_contents,channels=3)    #对jpeg格式的图像进行解码,解码之后的结果为一个tensor,channels为颜色通道个数

tf.train.slice_input_producer()    #是一个tensor生成器,作用是按照设定,每次从一个tensor列表中按顺序或者随机抽取出一个tensor放入文件名队列。

tf.train.batch()    #是一个tensor队列生成器,作用是按照给定的tensor顺序,吧batch_size个tensor推送到文件队列,作为训练一个batch的数据,等待tensor出对执行计算。

tf.nn.dropout()    #为了防止或减轻过拟合而使用的函数,一般在全连接层。

tf.train.AdamOptimizer(learning_rate)    #次函数是Adam优化算法,选择全局最优点的优化算法,引入了二次方梯度校正,并基于learning_rate进行梯度优化训练

tf.train.GradientDescentOptimizer(learning_rate)    #此函数是利用梯度下降方进行优化操作,并基于learning_rate进行梯度优化训练

tf.summary.merge_all()    #可以将所有的summary全部保存到磁盘,以便tensorboard显示

tf.summery.scalar()    #添加标量统计结果

tf.nn.in_top_k(prediction,target,k)    #模型预测的结果和实际结果是否相等,k表示每个样本的预测结果的前K个最大的数是否在target里,一般取1

tf.nn.relu()    #激活函数

tf.nn.lrn(0    #归一化函数

tf.argmax(vector, 1)    #返回的是vector中的最大值的索引号,如果vector是一个向量,那就返回一个值,如果是一个矩阵,那就返回一个向量,这个向量的每一个维度都是相对应矩阵行的最大值元素的索引号。



Tensorflow的API地址为:https://www.tensorflow.org/api_docs/python/

参考文献:

Tensorflow:实战Google深度学习框架

ValueError: Rank mismatch: Rank of labels (received 2) should equal rank of logits minus 1 (received 2).http://maaiguo.com/ 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值