TensorFlow入门笔记

笔记记录了TensorFlow中的基本语法

导入TensorFlow的库:import tensorflow as tf
tf中的变量不同于Python的变量,需要用tf函数定义:x = tf.Variable(维度),创建多维变量
变量创建后并没有产生实际值,需要申明并调用init_op = tf.global_variables_initializer()初始化所有的变量的动作
tf中定义了操作以后,并不会执行,需要打开session,在session中run(op)执行动作op:
with tf.Session() as sess:
    sess.run(init_op) //调用初始化动作 (1)
在打开session之前预定义的动作,会在初始化动作后被执行,比如有如下动作:
x = tf.Variable([[1,2]])//一行两列
w = tf.Variable([[2],[1]])//两行一列
y = tf.matmul(x, y) //矩阵乘法
矩阵动作y在语句(1)执行后,也会被计算,而在语句(1)执行前是没有实际操作的,执行后可以调用y.eval()查看动作结果
x,w,y都属于Tensor对象
numpy和tf的初始化对比:
    1)创建全0矩阵:
    np.zeros()
    tf.zeros([3, 4], float32)//最好用float32,因为CPU和GPU都支持该格式
    2)创建全1矩阵:
    np.ones()
    tf.ones([2, 3], float32)
    3)创建全1同型矩阵:
    tf.ones_like(tensor)//假设tensor是[[1,2,3],[4,5,6]],动作结果就是[[1,1,1], [1,1,1]
    3)定义常量:
    tensor = tf.constant([1,2,3])//tensor是常量,值不能变,相对于Variable=>[1,2,3]
    tensor = tf.constant(-1.0, shape=[2,3])//创建2行3列值全-1.0的矩阵=>[[-1,-1,-1,],[-1,-1,-1,]]
    4)创建区间数:
    np.linspace
    tf.linspace(10.0, 12.0, 3, name='linspace') => [10.0 11.0 12.0]
    tf.range(start, limit, delta)//从start开始到limit结尾,按照delta差值创建一列数,如[2,4,6,8,10]
    5)创建随机值:
    tf.random_normal([2,3], mean=-1, stddev=4)//创建2行3列,均值-1,标准差4的符合正态分布的随机值
    tf.random_shuffle(tensor)//对tensor矩阵执行洗牌操作,打乱原数据
加法动作:new_add = tf.add(t1, t2)//创建动作new_add,加法的两个操作数是Tensor对象t1,t2
赋值动作:new_update = tf.assign(dst, value)//创建new_update赋值动作,dst是被赋值的对象,value是赋值的值或动作的返回值
例:循环累加
v = tf.Variable(0)
new_add = tf.add(v, tf.constant(1))
new_update = tf.assign(v, new_add)    
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(v.eval())
    for _ in range(5):
        sess.run(new_update)
        print(v.eval())
保存session的动作:saver = tf.train.Saver(),用saver.save(sess, filepath)可以把一个执行中的session保存到文件中,下次可以从文件中读取该session继续执行
numpy转tf:tf.convert_to_tensor(np),把np数组/矩阵转化成tensor对象    
TensorFlow的占位符:h1 = tf.placeholder(value_type),定义一个数据类型为value_type的占位符h1,当run的时候可以给占位符具体值
例:h1 = tf.placeholder(tf.float32)
h2 = tf.placeholder(tf.float32)
output = tf.mul(h1, h2)//数值乘法
with tf.Session() as sess:
    sess.run(output, feed_dict={h1:[7.], h2:[2.])//执行动作结果是[14.]
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值