TensorFlow中常量与变量的基本操作演示
TensorFlow中常量与变量的基本操作演示
本文将介绍TensorFlow中的基本算法运算与矩阵运算,介绍Tensorflow中常量、变量、操作符等基本运算单元概念,同时会辅助介绍会话与变量初始化等概念。谷歌使用tensorflow来命名它的深度学习框架,可以说是十分贴切的,可以分为两个单词解释tensorflow分别为tensor与flow。tensor意思翻译为中文张量,但是到底什么才是张量,tensorflow官方对此的解释是:
- tensor表示N维的数组,向量就是一维张量、矩阵就是二维张量,其它请看下图:
flow表示数据节点流图,典型结构如下:
上述图中我们可以看到那些圆角矩形表示变量-Var,那些椭圆表示操作-OP,此外tensorflow还经常用的常量、运行数据流图需要开启会话。下面我们就一一对tensorflow最基本元素进行说明:
- 常量
tensorflow中常量函数是出镜率最高的函数,也是初学者最初接触到函数之一,常量函数的定义如下:
def constant(value, dtype=None, shape=None, name="Const", verify_shape=False):
举例,定义两个常量OP的代码如下:
a = tf.constant(32, dtype=tf.float32, name="a1")b = tf.constant(48, dtype=tf.float32, name="b1")32与48分别是两个常量的值,
2.变量
tensorflow中变量函数是最基础函数之一,使用频率也是非常高,变量函数定义如下:
def __init__(self, initial_value=None, trainable=True, collections=None, validate_shape=True, caching_device=None, name=None, variable_def=None, dtype=None, expected_shape=None, import_scope=None):
举例,定义两个随机变量OP的代码如下:
c = tf.Variable(2.0, dtype=tf.float32, name="c1")d = tf.Variable(tf.random_normal([3, 20], stddev=0.5), name="d1")
3.操作符
通常我们把常量、变量、以及其他操作数都称为OP,假设我们对上述定义的两个常量与一个变量相加计算和就可以用如下的代码实现
e = tf.add(tf.add(a, b), c)
其中tf.add就是操作符,其它更多的操作符可以参考API说明即可。
4.会话
当我们完成上面的简单代码编写之后,我们要运行这个数据流图,首先必须初始化一个会话,可以通过tf.Session()得到返回会话对象,然后在会话中执行最终的节点操作数,整个数据流图就完成计算,完整的代码实现如下:
with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) result = sess.run(e) print(result)
上述代码执行时候,首先完成对变量的全局初始化,然后才是执行相关操作数,输出并打印结果82.0。 对于多个常量的情况,一样可以完成计算,代码演示如下:
aa = tf.constant([3, 4], dtype=tf.float32, name="a2")bb = tf.constant([5, 6], dtype=tf.float32, name="b2")cc = tf.Variable(aa + bb, dtype=tf.float32, name="c2")with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) result = sess.run(cc) print(result)
最重要的千万别忘记import tensorflow as tf 对于变量是多维的情况,我们一样可以计算,下面的代码就是生成两个二维变量,然后使用矩阵乘法计算结果,代码如下:
import tensorflow as tfm1 = tf.Variable(tf.random_normal([1, 20], stddev=5), name="m1")m2 = tf.Variable(tf.random_normal([20, 1], stddev=.4), name="m2")_M = tf.matmul(m1, m2)with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) print(sess.run(m1)) print(sess.run(m2)) result = sess.run(_M) print("result : n", result)
上述内容主要是演示了tensorflow中的常量、变量、会话、初始化变量等一些基本元素的基本操作,后续我们还会继续更新文章!请关注!
- Golang语言-并发支持
- HDUOJ-----I NEED A OFFER!
- HDUOJ---2546 饭卡
- 假期前的数据库检查脚本之主备关系(r11笔记第46天)
- HDUOJ----1003 Max Sum
- HDUOJ--Bone Collector
- HDUOJ--1058HangOver
- 免插件实现WordPress的Sitemap功能
- HDUOJ--1865 1string
- Golang语言延迟函数defer用法分析
- HDUOJ---大菲波数
- HDUOJ Children’s Queue
- HDUOJ----1250 Hat's Fibonacci
- HDUOJ---1133(卡特兰数扩展)Buy the Ticket
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter路由框架Fluro使用简介
- Android倒计时神器(CountDownTimer)
- Kotlin如何安全访问lateinit变量的实现
- Android实现加载对话框
- Android RecyclerView实现悬浮吸顶、分隔线、到底提示效果
- Android监听键盘状态获取键盘高度的实现方法
- android实现小音频频繁播放
- 每日一个知识点:什么时候会触发Full GC
- 拥抱kotlin之如何习惯使用kotlin高阶函数
- Android中调用另一个Activity并返回结果(选择头像功能为例)
- Android 自定义缩短Toast显示时间的实例代码
- Android Presentation实现双屏异显
- Android中点击按钮启动另一个Activity及Activity之间传值问题
- Android中使用SeekBar拖动条实现改变图片透明度(代码实现)
- Android实现原生锁屏页面音乐控制