关于tensorflow的一点小知识

tensorflow运行模式——会话

第一种方法:

#创建一个会话
sess=tf.Session()
#使用这个创建的会话来得到关心的运算结果
sess.run(...)
#关闭会话,使得本次运行中使用到的资源可以被释放
sess.close()

使用这种方法的时候需要明确调用Session.close函数来关闭会话并释放资源。

第二种方法:

#创建一个会话,并通过python中的上下文管理器来管理这个会话
with tf.Session() as sess:
    #使用创建好的会话来关心计算结果
    sess.run()

第二种方法不需要调用close函数来关闭会话

第三种方法:

sess=tf.InteractiveSession()
print(result.eval())
sess.close()

tensorflow变量

声明一个2*3矩阵变量的方法

weights=tf.Variable(tf.random_normal([2,3],stddev=2))

样例中会产生一个2*3矩阵,矩阵中的元素的均值是0,标准差为2的随机数。如果在random_normal函数里再加入seed=1参数,即可保证每次运行的结果是一样的。下面是几个常见的随机数生成函数

random_normal: 正太分布随机数,均值mean,标准差stddev 
truncated_normal:截断正态分布随机数,均值mean,标准差stddev,不过只保留[mean-2*stddev,mean+2*stddev]范围内的随机数 
random_uniform:均匀分布随机数,范围为[minval,maxval]

常熟生成函数:

#产生全0的特征
tf.zeros([2,3],int32)

#产生全1的特征
tf.ones([2,3],int32)

#产生一个全部为给定数字的数组
tf.fill([2,3],9)

#产生一个给定值的数组
tf.constant([1,2,3])
#tf中的矩阵乘法
tf.matmul(x,w1)

神经网络的前向传播实现:

import tensorflow as tf

#声明两个变量
w1=tf.Variable(tf.random_normal((2,3),stddev=1,seed=1))
w2=tf.Variable(tf.random_normal((3,1),stddev=1,seed=1))

#暂时将输入的特征量定义为一个常量
x=tf.constant([[0.7,0.9]])

#前向传播算法
a=tf.matmul(x,w1)
y=tf.matmul(a,w2)

sess=tf.Session()
init_op=tf.global_variables_initializer()
sess.run(init_op)

#input
print(sess.run(y))
sess.close()

运行结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值