zoukankan      html  css  js  c++  java
  • TensorFlow的基本运算

    会话(session):会话拥有并管理Tensorflow程序运行时的所有资源,计算之后需关闭会话回收资源

     1 import tensorflow as tf
     2 
     3 #定义计算图
     4 tens=tf.constant([1,2,4])
     5 #创建一个会话
     6 sess=tf.Session()
     7 # 使用这个创建好的会话来得到关心的结果,如调用的sess.run(tens1),得到张量tensl的取值
     8 print(sess.run(tens))
     9 # 关闭会话使释放本次运行中使用的资源
    10 sess.close()

    2.

     1 import tensorflow as tf
     2 
     3 node1=tf.constant(3.0,tf.float32,name="node1")
     4 node2=tf.constant(4.0,tf.float32,name="node2")
     5 
     6 result=tf.add(node1,node2)
     7 #创建一个会话,通过Python的上下文管理器来管理
     8 with tf.Session() as sess:
     9     # 使用创建好的会话来计算结果
    10     print(sess.run(result))
    11 
    12 # 不需要再调用sess.close()来关闭会话
    13 #上下文退出时自动关闭

    当python不生成默认对话,需要手动指定,可通过tf.Tensor.eval()计算值

     1 import tensorflow as tf
     2 import numpy as np
     3 
     4 node1=tf.constant(3.0,tf.float32,name="node1")
     5 node2=tf.constant(4.0,tf.float32,name="node2")
     6 
     7 result=tf.add(node1,node2)
     8 #当python不生成默认对话,需要手动指定,可通过tf.Tensor.eval()计算值
     9 sess=tf.Session()     #sess=tf.InteractiveSession()  print(result.eval())    sess.close() 等价
    10 # with sess.as_default():
    11 #     # 使用创建好的会话来计算结果
    12 #     print(result.eval())
    13 print(sess.run(result))
    14 print(result.eval(session=sess))
    15 # 不需要再调用sess.close()来关闭会话
    16 #上下文退出时自动关闭x

    变量:Variable

    在运行过程中值会改变的单元,在Tensorflow中必须进行初始化操作创建语句:

    name_variable=tf.Variable(value,name)

    个别变量初始化:init_op=name_variable.initializer()

    所有变量初始化:init_op=tf.global_variables_initializer()

            sess.run(init_op)  #调用会话run命令对参数进行初始化

    计算1+2+...+10

     1 import tensorflow as tf
     2 
     3 x=tf.Variable(0)
     4 y=tf.Variable(0)
     5 t=tf.constant(1)
     6 
     7 new_x=tf.add(x,t)
     8 update_x=tf.assign(x,new_x)
     9 new_y=tf.add(y,x)
    10 update_y=tf.assign(y,new_y)  #变量更新
    11 
    12 init=tf.global_variables_initializer()
    13 
    14 with tf.Session() as sess:
    15     sess.run(init)
    16     for i in range(10):
    17         sess.run(update_x)
    18     print(sess.run(update_y))

    占位符:placeholder

    在定义时并不知道其数值,只有当真正运行程序时,才由外部输入,如训练数据

    tf.placeholder先定义一种数据,其参数为数据的Type和Shape

    tf.placeholder(dtype,shape=None,name=None)

    Feed提交数据:

    placeholder占用的变量必须通过feed_dict参数传递进去

    1 import tensorflow as tf
    2 
    3 a=tf.placeholder(tf.float32)
    4 b=tf.placeholder(tf.float32)
    5 c=tf.multiply(a,b)
    6 
    7 with tf.Session() as sess:
    8     result=sess.run(c,feed_dict={a:0.5,b:8.0})
    9     print(result)
  • 相关阅读:
    HDU 1203 01背包变形题,(新思路)
    HDU 2955 变形较大的01背包(有意思,新思路)
    HDU 2191(多重背包转换为01背包来做)
    HDU 1114(没有变形的完全背包)
    HDU2546(01背包加一点点变形)
    HDU 1950(LIS)
    c模拟 页式管理页面置换算法之FIFO
    HDU 1257 最少拦截系统(贪心 or LIS)
    路由选择(codevs 1062)
    钓鱼(洛谷 P1717)
  • 原文地址:https://www.cnblogs.com/hly97/p/12804155.html
Copyright © 2011-2022 走看看