机器学习笔记二十三 TensorFlow
来源:互联网 发布:软件企业资质 编辑:程序博客网 时间:2024/06/05 04:13
一、简介
2015 年 11 月,谷歌发布TensorFlow,已经在图像识别、语音识别、自然语言处理、数据挖掘和预测等 AI 场景中得到了十分广泛的应用。
Tensorflow的特性
- 高度的灵活性:Tensorflow并不是一个严格的神经网络库,只要计算可以表示为一个数据流图,就可以使用Tensorflow。
- 可移植性(Portability)
- 多语言支持
- 性能最优化
二、安装
pip install tensorflow
手工下载安装
http://www.lfd.uci.edu/~gohlke/pythonlibs/#tensorflow
下载whl文件后进行安装。
pip install ***.whl
windows下载需要安装protobuf-3.3.0-py3-none-any.whl。
三、 试验代码
第一个程序
import tensorflow as tfhello = tf.constant('Hello world')session = tf.Session()print(sess.run(hello))
启动一个graph
import tensorflow as tfa = tf.constant(2)b = tf.constant(3)with tf.Session() as sess: print ("a=2,b=3") print(Addtion with constants:%i"% sess.run(a+b)) print("Multiplication with constants:%i"%sess.run(a*b))
tensorflow里基本的数据结构是tensor结果。
import numpy as npimprt tensorflow as tfimport matplotlib.pyplot as plta = 3w = tf.Variable([[0.5,1.0]])x = tf.Variable([[2.0],[1.0]])y=tf.matmul(w,x) #乘法操作init_op = tf.global_variables_initializer()with tf.Session() as sess: sess.run(init_op) print(y.eval())
要通过session来对数据进行操作。
四、基本概念
- 图(Graph):图描述了计算的过程,Tensor使用图来表示计算任务
- 张量(Tensor):TensorFlow使示tensor表示数据,每个tensor是一个类型化的多维数组。
- 计算(op):图中的节点被称为op(operation的缩写),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。
- 会话(Session):图必须在称之为“会话”的上下文中执行。会话将图的op分发到GPU之类的设备上执行。
- 变量(Variable):运行过程中可以被改变,用于维护状态。 -
计算图
import numpy as npa = np.zeros((3,3))nbarray转换为tensor支持的格式 。
placeholder
input1 = tf.placeholder(tf.float32)input2 = tf.plcaeholder(tf.float32)output = tf.mul(input1,input2)with tf.Session() as sess: print(sess.run([out[ut], feed_dict={input1:[7.],input2:[2.])))
placeholder定义时没有值,使用时赋值。
[array( 14.],dtype=float32)]
回归操作
import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltnum_points = 1000vectors_set =[]for i in range(num_points): x1 = np.randowm.normal(0.0,0.55) y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0,0.03) vector_set.append([x1,y1]) #高斯初始化一些点x_data = [v[0] for v in vectors_set]y_data = [v[1] for v in vectors_set]plt.scatter#生成1维的W矩阵,取值是[-1,1]之间的随机数w=tf.Variable(tf.random_uniform([1],-1.0,1.0),name='w')# 生成1维的b矩阵,初始值0b = tf.Variable(tf.zeros([1]),name='b')#经过计算得出预估值y = W * x_data + b# 以预估值y和实际值y_data之间的无均方误差作为操作loss = tf.reduce_mean(tf.square(y - y_data),name='loss')# 采用梯度下降法来优化参数optimizer = tf.train.GradientDescentOptimizer(0.5)# 主教练的过程就是最小化这个误差值train = optimizer.minimize(loss,name='train')sess=tf.Session()init=tf.global_variables_initializer()sess.run(init)# 初始化的W和b是多少print("W=",sess.run(W),"b=",sess.run(b),"loss=",session.run(loss))# 执行20次训练for step in range(20): sess.run(train) # 执行迭代 #输出训练好的w和b print("W=",sess.run(W),"b=",session.run(b),"loss=",sess.run(loss)) writer=tf.train.SummaryWriter("./tmp",sess.graph)
plt.scatter(x_data,y_data,c='r')plt.plot(x_data,sess.run(W)*x_data+sess.run(b))plt.show()
阅读全文
0 0
- 机器学习笔记二十三 TensorFlow
- TensorFlow学习笔记(二十一) tensorflow机器学习模型
- tensorflow学习笔记(二十三):variable与get_variable
- tensorflow学习笔记(十三):conv3d
- tensorflow学习笔记(二):机器学习必备API
- 【机器学习】Tensorflow学习笔记
- TensorFlow学习笔记(二十三)四种Cross Entropy交叉熵算法实现和应用
- 机器学习笔记(十三)半监督学习
- TensorFlow学习笔记(十三)TensorFLow 常用Optimizer 总结
- Allegro学习笔记二十三
- 学习笔记(二十三)
- TensorFlow学习二:MNIST机器学习入门
- 机器学习课堂笔记(十三)
- 机器学习基石(林軒田)笔记之十三
- 机器学习笔记十三:Ensemble思想(上)
- 机器学习笔记十三 朴素贝叶斯
- tensorflow学习笔记(二十一):tensorflow可视化
- TensorFlow学习笔记(二):TensorFlow入门
- Java对日期Date类进行加减运算,年份加减,月份加减
- Android 自定义 View 开发
- 机器学习笔记之模型表述
- 实验五 JPEG解码
- 银联商务MISPOS接口开发demo 需要调用POSINF.DLL
- 机器学习笔记二十三 TensorFlow
- 简单转下snowflak的介绍
- vs2010下 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏的问题解决办法
- C++ iterator遍历 以前没注意到的一个点 前置递增和后置递增
- 洛谷P3371 单源最短路径
- 【bitset】POJ2443[Set Operation]题解
- BZOJ 4034 树上操作 链剖
- 关于if-else代码的优化
- HTML