Python Tensor FLow简单使用方法实例详解
本文实例讲述了PythonTensorFLow简单使用方法。分享给大家供大家参考,具体如下:
1、基础概念
importtensorflowastf node1=tf.constant(3.0,tf.float32,name='node1')#创建浮点数节点 node2=tf.constant(4.0,tf.float32,name='node2') node3=tf.add(node1,node2)#节点三进行相加操作,源于节点1、2 ses=tf.Session() print(node3)#输出张量:Tensor("Add_3:0",shape=(),dtype=float32) print(ses.run(node3))#通过会话运行节点三,将节点1、2相加,输出:7.0 ses.close()#不使用时,关闭会话
tensor1=tf.constant([[[1,1,1],[1,2,1]], [[2,1,1],[2,2,1]], [[3,1,1],[3,2,1]], [[4,1,1],[4,2,1]]],name='tensor1') print(tensor1) ss=tf.Session() print(ss.run(tensor1)[3,0,0])#访问tensor1的具体元素 #输出:Tensor("tensor1:0",shape=(4,2,3),dtype=int32)4
2、运算
会话
#定义计算图 tensor1=tf.constant([1,2,3]) #创建会话 ss=tf.Session() #利用会话进行计算操作 print(ss.run(tensor1)) #关闭会话 ss.close()
tensor1=tf.constant([1,2,3]) withtf.Session()asss:#上下文管理器 print(ss.run(tensor1))
tensor1=tf.constant([1,2,3]) ss=tf.Session() withss.as_default():#指定默认会话 print(tensor1.eval())
tensor1=tf.constant([1,2,3]) ss=tf.InteractiveSession()#自动注册默认会话 print(tensor1.eval()) ss.close()
变量、常量
a=tf.constant(10,'int_a')
node1=tf.Variable(3.0,name='node1')#定义变量 node2=tf.Variable(4.0,name='node2') res=tf.add(node1,node2,name='res') ss=tf.Session() init=tf.global_variables_initializer()#定义全部变量的初始化操作 ss.run(init)#执行初始化操作 print(ss.run(res)) ss.close()
var1=tf.Variable(0,name='var') one=tf.constant(1) var2=tf.add(var1,one)#变量1加1得到变量2 update=tf.assign(var1,var2)#定义update操作,将变量2赋值给变量1 init=tf.global_variables_initializer() ss=tf.Session() ss.run(init) for_inrange(10): ss.run(update)#执行update操作 print(ss.run(var1)) ss.close() #输出:12345678910
占位符
node1=tf.placeholder(tf.float32,name='node1')#定义占位符,规定其类型、结构、名字 node2=tf.placeholder(tf.float32,name='node2') m=tf.multiply(node1,node2,'multinode') ss=tf.Session() res=ss.run(m,feed_dict={node1:1.2,node2:3.4})#在运行时通过feed_dict为占位符赋值 print(res) ss.close()
node1=tf.placeholder(tf.float32,[3],name='node1')#第二个参数规定占位符的类型为3维数组 node2=tf.placeholder(tf.float32,[3],name='node2') m=tf.multiply(node1,node2,'multinode') s=tf.subtract(node1,node2,'subnode') ss=tf.Session() #将m,s两个操作放到一起,并返回两个结果 resm,ress=ss.run([m,s],feed_dict={node1:[1.0,2.0,4.0],node2:[3.0,5.0,6.0]}) print(resm)#输出:[3.10.24.] ss.close()
3、TensorBoard
node1=tf.Variable(3.0,name='node1') node2=tf.Variable(4.0,name='node2') res=tf.add(node1,node2,name='res') ss=tf.Session() init=tf.global_variables_initializer() ss.run(init) print(ss.run(res)) ss.close() #清除defaultgraph和其他节点 tf.reset_default_graph() #定义日志存放的默认路径 logdir='D:\Temp\TensorLog' #生成writer将当前的计算图写入日志 writer=tf.summary.FileWriter(logdir,tf.get_default_graph()) writer.close()
#TensorBoard使用 #定义日志保存位置 log_dir='D:\Temp\MachineLearning\TensorLog' #显示图片 image_input=tf.reshape(x,[-1,28,28,1]) tf.summary.image('input',image_input,10)#一次最多显示图片数:10 #显示直方图 tf.summary.histogram('Y',Y3) #显示标量loss tf.summary.scalar('loss',loss_function) tf.summary.scalar('accurancy',accuracy) #定义汇总summary操作 merge_op=tf.summary.merge_all() ss=tf.Session() ss.run(tf.global_variables_initializer()) #定义writer writer=tf.summary.FileWriter(log_dir,ss.graph) forepochinrange(train_epochs): forbatchinrange(batch_num):#分批次读取数据进行训练 xs,ys=mnist.train.next_batch(batch_size) ss.run(optimizer,feed_dict={x:xs,y:ys}) #执行summary操作并将结果写入日志文件 summary_str=ss.run(merge_op,feed_dict={x:xs,y:ys}) writer.add_summary(summary_str,epoch) loss,acc=ss.run([loss_function,accuracy],\ feed_dict={x:mnist.validation.images,y:mnist.validation.labels}) print('第%2d轮训练:损失为:%9f,准确率:%.4f'%(epoch+1,loss,acc))
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。