安装好TensorFlow之后,开一个python环境,就可以开始运行和使用TensorFlow了。

先给一个实例,

#先导入TensorFlow
import tensorflow as tf hello_constant = tf.constant('Hello World!') # Create TensorFlow object called hello_constant
with tf.Session() as sess: 
output = sess.run(hello_constant) # Run the tf.constant operation in the session
   print(output)

  

也许有人奇怪,为什么不直接输出“Hello World!”呢,这个看起来很麻烦,是吗?其实不是的 
1.Tensor是什么? 
在 TensorFlow 中,数据不是以整数,浮点数或者字符串形式存在的,而是被封装在一个叫做 tensor 的对象中。Tensor是张量的意思,张量包含了0到任意维度的量,其中,0维的叫做常数,1维的叫做向量,二维叫做矩阵,多维度的就直接叫张量量。在 hello_constant = tf.constant(‘Hello World!’) 代码中,hello_constant是一个 0 维度的字符串 tensor,tensors 还有很多不同大小:

# tensor1 是一个0维的 int32 tensor
tensor1 = tf.constant(1234)
# tensor2 是一个1维的 int32 tensor
tensor2 = tf.constant([123,456,789])
# tensor3 是一个二维的 int32 tensor
tensor3 = tf.constant([ [123,456,789], [222,333,444] ])

  

2.Session是Tensorflow中的一个重要概念 
Tensorflow中的所有计算都构建在一张计算图中,这是一种对数学运算过程的可视化方法。就像刚才的代码:

with tf.Session() as sess:
output = sess.run(hello_constant)

  

这个session就是负责让这个图运算起来,session的主要任务就是负责分配GPU或者CPU的。

3.tf.placeholder() 
前面代码中出现了tf.constant(‘Hello World!’),这个tf.constant是用来定义常量的,其值是不变的,但是如果你需要用到一个变量怎么办呢?

这个时候就需要用到tf.placeholder() 和 feed_dict了。 
先给代码

x = tf.placeholder(tf.string)

with tf.Session() as sess:
output = sess.run(x, feed_dict={x: 'Hello World'})

  

tf.placeholder表示一个占位符,至于是什么类型,看自己定义了,这里定义的是tf.string类型,然后呢,在session开始run以前,也就死这个图开始计算以前,就使用feed_dict将对应的值传入x,也就是这个占位符。 
同样的feed_dict可以设置多个tensor

x = tf.placeholder(tf.string)
y = tf.placeholder(tf.int32)
z = tf.placeholder(tf.float32) with tf.Session() as sess:
output = sess.run(x, feed_dict={x: 'Test String', y: 123, z: 45.67})

  

但是需要注意的是,使用feed_dict设置tensor的时候,需要你给出的值类型与占位符定义的类型相同。

#coding=utf-8
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #忽略烦人的警告
#import numpy; hello_constant=tf.constant("Hello Ryan!")
tensor1 = tf.constant(1234)
tensor2 = tf.constant([123,456,789])
tensor3 = tf.constant([ [123,456,789], [222,333,444] ])
x = tf.placeholder(tf.string)
y = tf.placeholder(tf.int32)
z = tf.placeholder(tf.float32)
with tf.Session() as sess:
output=sess.run(hello_constant)
print(output)
output1=sess.run(tensor1)
print(output1)
output2=sess.run(tensor2)
print(output2)
output3=sess.run(tensor3)
print(output3)
output4=sess.run(x,feed_dict={x:'Hello World'})
print(output4)
output5=sess.run(x,feed_dict={x:'Hello zhu',y:123,z:55.5555})
print(output5)

  

$ python zhuyr.py
b'Hello Ryan!'
1234
[123 456 789]
[[123 456 789]
[222 333 444]]
Hello World
Hello zhu
(tensorflow)

Tensorflow入门----占位符、常量和Session的更多相关文章

  1. Tensorflow学习笔记——占位符和feed_dict(二)

    创建了各种形式的常量和变量后,但TensorFlow 同样还支持占位符.占位符并没有初始值,它只会分配必要的内存.在会话中,占位符可以使用 feed_dict 馈送数据. feed_dict是一个字典 ...

  2. 知乎TensorFlow入门学习记录

    知乎地址:https://zhuanlan.zhihu.com/p/30487008 import tensorflow as tf a=tf.placeholder(tf.int16) # 接受的数 ...

  3. tensorflow中张量_常量_变量_占位符

    1.tensor 在tensorflow中,数据是被封装在tensor对象中的.tensor是张量的意思,即包含从0到任意维度的张量.常数是0维度的张量,向量是1维度的张量,矩阵是二维度的张量,以及还 ...

  4. tensorflow学习笔记(二)常量、变量、占位符、会话

    常量.变量.占位符.会话是tensorflow编程的基础也是最常用到的东西,tensorflow中定义的变量.常量都是tensor(张量)类型. 常量tf.constant() tensorflow中 ...

  5. tensorflow中常量(constant)、变量(Variable)、占位符(placeholder)和张量类型转换reshape()

    常量 constant tf.constant()函数定义: def constant(value, dtype=None, shape=None, name="Const", v ...

  6. TensorFlow从0到1之常量、变量和占位符详解(6)

    最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算.张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量.矢量和矩阵等都是特殊类型的张量.   TensorFlow 支持 ...

  7. TensorFlow解析常量、变量和占位符

    TensorFlow解析常量.变量和占位符 最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算.张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量.矢量和矩阵等都是特殊 ...

  8. TensorFlow占位符操作:tf.placeholder_with_default

    tf.placeholder_with_default 函数 placeholder_with_default( input, shape, name=None ) 请参阅指南:输入和读取器>占 ...

  9. python基础入门--input标签、变量、数字类型、列表、字符串、字典、索引值、bool值、占位符格式输出

    # 在python3 中: # nian=input('>>:') #请输入什么类型的值,都成字符串类型# print(type(nian)) # a = 2**64# print(typ ...

随机推荐

  1. 39-python 字符串替换+正则

    from bs4 import BeautifulSoup import urllib.request import re moduel =re.compile('<.*?>') st = ...

  2. Financial Information Exchange (FIX) Protocol Interview Questions Answers[z]

    What do you mean by Warrant?Warrant is a financial product which gives right to holder to Buy or Sel ...

  3. Luogu 4491 [HAOI2018]染色

    BZOJ 5306 考虑计算恰好出现$s$次的颜色有$k$种的方案数. 首先可以设$lim = min(m, \left \lfloor \frac{n}{s} \right \rfloor)$,我们 ...

  4. 【转】WIFI基本知识整理

    WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习.因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种 ...

  5. Uploadify多文件上传插件.NET使用案例+PHP使用案例

    ploadify是一个非常好用的多文件上传插件 插件下载:http://www.uploadify.com 下载后需要用到的文件: 接下来就是直接添加代码: Default.aspx代码 <%@ ...

  6. python int函数转换浮点型字符串的坑???

    python中的int函数可以将数字或字符串转换为整型数字类型,具体功能就不提了 最近发现一个问题,对于字符串'1.1'之类的,int转换的时候会报异常,这是为什么,个人感觉直接转换成1不就行了,干嘛 ...

  7. 监控小工具(jconsole)

    偶然发现的一个监控小工具 配置好Jmeter运行的环境,在CMD命令中输入:jconsole 即可弹出一个[java监视和管理控制台]

  8. CYUSB3014芯片使用EEPROM无法下载固件说明

    当使用128KB的EEPROM存储CYUSB3014芯片的固件时,需要注意,不同厂家的EEPROM存储器,其A0.A1.A2功能不一样,在设计时电路也不一样.Microchip对应的128KB的EEP ...

  9. tomcat启动时就频繁gc和full gc

    一个小业务,流量并不大,功能也很简单,spring framework+mybatis+quartz,一启动就看到gc的频次和full gc的频次非常高: 4.202: [Full GC 4.202: ...

  10. 执行计划--在存储过程中使用SET对执行计划的影响

    --如果在存储过程中定义变量,并为变量SET赋值,该变量的值无法为执行计划提供参考(即执行计划不考虑该变量),将会出现预估行数和实际行数相差过大导致执行计划不优的情况--如果在存储过程中使用SET为存 ...