Tensorflow(一)

Tensorflow基础

一,数据类型

Tensorflow中的基本单位是:图(图表),操作:(OP),会话:(会话),张量(张量),除此之外还有变量:(可变)等数据类型

如图1所示,图(图表):

(1)图是整个计算流程的基本对象,所有的操作都要在图中运行,一般我们使用

G=tf.Graph()

来构建一个图对象

(2)如果你的程序中没有定义图,那么系统会自动构建一个默认的图,从而完成你的所有计算,这个默认图可以通过

tf.get_defalut_graph()

来获取到你默认的图对象

(3)在我们填写图中的元素时,一般用

with G.as_default():

来定义该对象(G)内的元素

2,张量(张量):

(1)张量是Tensorflow中的基本数据类型,所有的数据都以该类型来存储,但张量里记录的不是一个值,而是怎样求出这个值的过程,如果我们想要调用这个值时,需要用相关的运行器来运行这个计算过程,也就是下一小结的会话

(2)常量是我们最常使用的数据存储类型,一般使用

x = tf.constant(initial_value, name, type)

来创建一个常量型的张量,它通常用来存储那些在整个过程中不变的值

initial_value:初始值,名称:标识符,类型:数据类型

(3)变量也是一种张量,一般使用

w = tf.Variable(initial_value, trainable)

来创建变量,它的主要参数有initial_value决定他的初始值,可训练决定该变量是否在训练过程中参与优化,默认值为真时,

另外,在我们对它初始化时,常用

tf.random_normal(initial_vale, stddev, seed) 

随机化函数来创建一个随机值或随机矩阵

initial_shape:初始矩阵形状,stddev:标准差,种子:种子值,同样的种子值随机化出来的矩阵是相同的

3,会话(会话):

(1)会话是一种运行器,或者形似一个编译器,因为所有的张量存储的都是运算过程,所以当我们需要调用张量时,我们就需要相应的运行器来运行我们的张量(或者说编译这段代码,当然其实已经编译过了,只是形似),不同的图可以定义不同的会话

(2)一般采用

with tf.Session(graph=G) as sess:

来创建已指定图类型的会话

(3)在采用上述的那种定义来定义会话后,一般使用

sess.run(op)

来运行我们需要运行的语句

 

如图4所示,操作(OP):

(1)在tensorflow中,会话真正运行的是运算,而不是张量,张量只是一个(过程)这种数据类型,而运算才是真正的我们要运行的对象,举个例子,比如在下列代码中:

init_op = tf.global_variables_initializer()

tf.global_variables返回了当前计算图中的所有变量,而_initializer()方法则是对变量进行初始化,所以这句语句的意思就是将init_op定义为一个将当前计算图中的所有变量都初始化的一个运算,但是如果我们不用相关会话去运行这个运算的话,这个操作是不会运行的,也就是说,只有在我们用.RUN()方法运行过运算后,这个运算的代码才会被执行

5,例子(情况):

以下是一个简单的创建一个单层网络的例子:

import tensorflow as tf

G=tf.Graph()

with G.as_default():
    # Variable:变量 stddev:标准差 seed:种子 trainable:是否需要优化
    # w:权值矩阵 init_op:初始化w操作
    w1 = tf.Variable(tf.random_normal((2, 3), stddev=1, seed=1), trainable=True)
    w2 = tf.Variable(tf.random_normal((3, 1), stddev=1, seed=1),trainable=False)
    init_op = tf.global_variables_initializer()
    # constant:张量
    # input:输入向量
    input= tf.constant([[0.7, 0.9]])
    #matmul:矩阵乘法
    #计算流程 calulation
    cal1 = tf.matmul(input, w1)
    output = tf.matmul(cal1, w2)

with tf.Session(graph=G) as sess:
    sess.run(init_op)
    print(sess.run(output))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值