Tensorflow学习日志与心得
Tensorflow学习日志与心得(一)
最近开始着手于神经网络的学习,查阅了相关资料使用Tensorflow为构建的主流,现在开始从基础部分开始学习,一起进行交流
1.概述
Tensorflow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。Tensor 看作是一个n 维的数组或列表。图必须在会话(Session)里被启动。
Tensor—数据
Session—会话 所有计算都要在会话中进行
graphs—图
operation—节点 进行加减乘除等运算的节点
2.Tensorflow基本操作
2.1常用函数
以下只列出了在学习中经常使用的函数,完整版可查看http://blog.csdn.net/lenbow/article/details/52152766
https://www.w3cschool.cn/tensorflow_python/tensorflow_python-36hu2mm9.html
操作 | 描述 |
---|---|
tf.add(x, y, name=None) | 求和 |
tf.sub(x, y, name=None) | 减法 |
tf.mul(x, y, name=None) | 乘法 |
tf.div(x, y, name=None) | 除法 |
tf.mod(x, y, name=None) | 取模 |
tf.square(x, name=None) | 计算平方 (y = x * x = x^2). |
tf.sqrt(x, name=None) | 开平方根 |
tf.reduce_mean(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None) | 求平均值 |
tf.matmul(a,b,transpose_a=False,transpose_b=False,a_is_sparse=False, b_is_sparse=False,name=None) | 矩阵相乘 |
tf.constant() | 定义常量 |
tf.Variable() | 定义变量 |
with tf.Session() as sess: | 定义会话结束后自动关闭 |
init = tf.global_variables_initializer() | 全局变量初始化 |
tf.assign(a, b) | 赋值 将b的值赋给a |
sess.run(title) | 执行会话 |
tf.placeholder(dtype,shape=None,name=None) | 为一个tensor插入一个占位符 |
2.2基础操作
1)创建会话
import tensorflow as tf #加入“头文件”
c1 = tf.constant([[3,3]]) #创建一行两列的矩阵
c2 = tf.constant([[3],[2]]) #创建两行一列的矩阵
product = tf.matmul(c1 , c2) #进行矩阵乘法运算
with tf.Session() as sess: #创建会话 Session(S要大写)reslut = sess.run(product) #输出运算结果
print(reslut)
[[15]]
2)变量操作
import tensorflow as tf #加入“头文件”
x = tf.Variable([1,2]) #创建变量x
c = tf.constant([3,3]) #创建常量c
sub = tf.subtract(x,c) #进行减法操作
add = tf.add(x,c) #进行加法操作
init = tf.global_variables_initializer() #变量必须初始化 全局变量初始化
with tf.Session() as sess: #创建session并创建默认图sess.run(init)print(sess.run(sub))
print(sess.run(add))
[-2 -1]
[4 5]
#变量自加一
state = tf.Variable(0,name='counter') #创建初始值为0的变量
new_value = tf.add(state,1) #给state加1
update = tf.assign(state , new_value) #将new_value的值赋给state
init = tf.global_variables_initializer() #全局变量初始化with tf.Session() as sess: sess.run(init)print(sess.run(state))for _ in range(5): #循环5次加1的操作print(sess.run(update))
print(sess.run(state))
0
1
2
3
4
5
3)Feed操作
c1 = tf.placeholder(tf.float32) #创建32位浮点型占位符(在执行时需要为其提供数据data)
c2 = tf.placeholder(tf.float32)
add = tf.add(c1,c2) #相加
with tf.Session() as sess:
print(sess.run(add,feed_dict={c1:[2],c2:[22]})) #在最终执行时给c1 c2赋值
[24.]
4)梯度下降拟合曲线
import numpy as np
import tensorflow as tf
x_data = np.random.rand(100)
y_data = .1 * x_data +.2
#构建线性模型优化器 优化y=kx+b
#待优化的参数
b = tf.Variable(0.) #变量
k = tf.Variable(0.)
y = k * x_data + b
#构建二次代价函数
loss = tf.reduce_mean(tf.square(y_data - y)) #二者相差平方的均值
optimizer = tf.train.GradientDescentOptimizer(0.2) #梯度下降优化器
train = optimizer.minimize(loss) #训练使代价函数最小init = tf.global_variables_initializer() #初始化
with tf.Session() as sess:sess.run(init)for step in range(200): #迭代200次sess.run(train)if step%20==0: #每20次打印一次print(step,'[k,b]:',sess.run([k,b]))
0 [k,b]: [0.050436843, 0.099178314]
20 [k,b]: [0.10087012, 0.19955701]
40 [k,b]: [0.10054425, 0.19972299]
60 [k,b]: [0.1003404, 0.19982675]
80 [k,b]: [0.10021292, 0.19989164]
100 [k,b]: [0.10013317, 0.19993222]
120 [k,b]: [0.10008328, 0.19995761]
140 [k,b]: [0.10005209, 0.19997348]
160 [k,b]: [0.10003257, 0.19998342]
180 [k,b]: [0.10002038, 0.19998963]
本次都是一些基础操作,也是本人第一次制作博客,主要用作自身学习,如有错误的地方还望大神指点!
Tensorflow学习日志与心得相关推荐
- Git 个人学习笔记及心得
作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...
- 人工神经网络与深度学习学习历程,心得及资料分享
人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点.它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同 ...
- Tensorflow 学习之猫狗分类案例
Tensorflow 学习之猫狗分类案例 本人一直在Cousera上学习Ng Andrew老师的Tensorflow课程,在本次猫狗分类案例当中,我对课程做了相应的记录,呈现在此,一方面加深学习的印象 ...
- 【干货】史上最全的Tensorflow学习资源汇总,速藏!
一 .Tensorflow教程资源: 1)适合初学者的Tensorflow教程和代码示例:(https://github.com/aymericdamien/TensorFlow-Examples)该 ...
- HTML5 Canvas 学习日志(三)
2019独角兽企业重金招聘Python工程师标准>>> HTML5 Canvas 学习日志(三) Canvas的11种合成 蓝色为destination,粉色为source 1 ...
- linux shell 基础 使用日志与心得
linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现 #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释 ...
- .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)
.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图 ...
- Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题
Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 参考文章: (1)Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 (2)http ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Tensorflow学习: 乘法demo
Tensorflow学习: Placeholder占位符 标签: tensorflow 2017-05-03 11:18 104人阅读 评论(0) 收藏 举报 分类: Tensorflow(6) ...
最新文章
- archlinux cn源
- python 数据库查询序列化_python-将sqlalchemy类序列化为json
- 【github干货】主流深度学习开源框架从入门到熟练
- Linux如何在系统启动时自动加载模块
- js(Dom+Bom)第七天(1)
- C#LeetCode刷题之#13-罗马数字转整数(Roman to Integer)
- C#中委托和事件的区别
- 刷题笔记(1) 一个序列是否为二叉搜索树的遍历结果
- python工具用什么语言_Python中一些自然语言工具的使用的入门教程
- Ant design的Table组件报错TypeError: rawData.some is not a function
- 在深圳,考PMP需要花费多少钱?
- 希望各位大神能帮我指导一下!!!感激不尽!!!
- 计算机硬盘合并怎么弄,如何将分区的硬盘合并为一个磁盘?
- Unity 2018升级2020后XR报错error CS0619: ‘XRDevice.isPresent‘ is obsolete
- [JS]HTML中把图片划分成多个作用区域的区域标记
- 地图飞线图 echart+高德地图实现
- 人民币小写转换为大写
- 二本毕业生如何从苦逼到强大的求职记(鲍金勇)
- 人体力学-线速度与角速度
- ESP32双核CPU,利用核0实现蓝牙打印机打印,核1完成常规控制