TensorFlow基本操作及函数

基本结构

import tensorflow as tf

a = tf.placeholder("float",[None,2]) # 占位符,"float"是64位的;tf.float32是32位的;
b = tf.placeholder(tf.float32, [2,1 ])#任意行,20列的x。

y = tf.matmul(a, b) #op节点;tf.matmul是点积,还有很多函数;


sess = tf.Session()#建立会话

print (sess.run(y, feed_dict={a: [[2,4],[4,1]],b:[[1],[2]]}))
sess.close()

sess1 = tf.InteractiveSession()#交互式的会话;
print("\n",sess1.run(y, feed_dict={a: [[1,2]],b:[[1],[2.]]}))
print("\n",y.eval(feed_dict={a: [[2,4],[4,1]],b:[[1],[2]]}))
sess1.close()

'''
output:
[[ 10.]
 [  6.]]

 [[ 5.]]

 [[ 10.]
 [  6.]]
'''

.placeholder()和feed_dict()

tf.placeholder(dtype,shape=None,name=None)
tf.Session.run(fetches, feed_dict=None, options=None, run=metadate=None)
'''
dtype是必须指定的数据格式,shape和name可以为空;
当计算时,需要feed给它这个占位符的值;feed_dict就是一个赋值字典;
'''
a=tf.placeholder('float')
b=tf.placeholder('float')
c=tf.multiply(a,b)#以前是mul(),后来更新成multiply()了;

with​ tf​.​Session​()​ ​as​ sess:
    print(sess.run(c,feed_dict={a:2,b:3}))
'''
可以给非占位符的张量赋值,只要它是feedable的;
'''
tf.Graph.is_feedable(tensor)#判断它是不是feedable

保存模型与读取模型.train.Saver()

#保存
saver = tf.train.Saver()
saver.save(sess,"Model/model.ckpt")


#读取
#还是和训练前一样先定义完所有变量后:
saver = tf.train.Saver()
saver.restore(sess, "./Model/model.ckpt")

#直接加载持久化的图,不需要先定义模型中保存的变量;
saver = tf.train.import_meta_graph("Model/model.ckpt.meta")
saver.restore(sess, "./Model/model.ckpt")

#加载模型时给变量更名;
#先定义好想更改的名字变量:
saver = tf.train.Saver({"v1": u1, "v2": u2})  
saver.restore(sess, "./Model/model.ckpt")  

#获取保存的模型中的变量
ema = tf.train.ExponentialMovingAverage(0.99)
print(ema.variables_to_restore())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值