详解Python使用tensorflow入门指南
作者:whoami_Ryan 发布时间:2023-08-22 13:37:09
TensorFlow是Google公司2015年11月开源的第二代深度学习框架,是第一代框架DistBelief的改进版本.
TensorFlow支持python和c/c++语言, 可以在cpu或gpu上进行运算, 支持使用virtualenv或docker打包发布.
定义变量
为了使用tensorflow,首先我们需要导入它
import tensorflow as tf
对于符号变量,我们新建一个
x = tf.placeholder(tf.float32, [None, 784])
这里x并不是一个特定的值,只是一个占位符,后面我们需要用tensorflow进行计算式,我们会把它作为输入
在模型中,我们需要weights权重和biases偏置,这里就用Variable来处理定义,Variable可以在整个计算过程中modified
w = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
在新建Variable的同时,我们也初始化了它,然后
y = tf.nn.softmax(tf.matmul(x, w) + b)
这样我们就成功的实现了我们的模型
训练
我们用cross-entropy作为我们的cost function
H_{y'}(y) = -\sum_i y'_i \log(y_i)
y就是我们预测的概率分布,y'是真实的概率分布
为了实现交叉熵,我们需要一个新的占位符来作为正确答案的输入
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = -tf.reducen_sum(y_ * tf.log(y))
通过梯度下降来实现优化模型
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy)
我们使用这个模型之前,最后一件我们需要做的事是
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
现在,我能可以训练1000次这个模型了,☺️
for i in xrange(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict = {x: batch_xs, y_: batch_ys})
使用随机数据的小batch就称为随机训练
模型评分
首先,我们对比真实的y_和模型所得y之间正确的个数有多少
correct_prediction = tf.equal(tf.argmax(y, 1), tf.agrmax(y_, 1))
这个会返回一个boolean列表,比如[True, False, True, True]
accuracy = tf.reduce_mean(tf.cast(correc_prediction, tf.float32))
print (sess.run(accuracy, feed_dict = {x: mnist.test.images, y_: minst.test.labels}))
最后就通过以上计算得到准确率
开始使用
TensorFlow并不是一个纯粹的神经网络框架, 而是使用数据流图进行数值分析的框架.
TensorFlow使用有向图(graph)表示一个计算任务.图的节点称为ops(operations)表示对数据的处理,图的边flow 描述数据的流向.
该框架计算过程就是处理tensor组成的流. 这也是TensorFlow名称的来源.
TensorFlow使用tensor表示数据. tensor意为张量即高维数组,在python中使用numpy.ndarray表示.
TensorFlow使用Session执行图, 使用Variable维护状态.tf.constant是只能输出的ops, 常用作数据源.
下面我们构建一个只有两个constant做输入, 然后进行矩阵乘的简单图:
from tensorflow import Session, device, constant, matmul
'''构建一个只有两个constant做输入, 然后进行矩阵乘的简单图:'''
#如果不使用with session()语句, 需要手动执行session.close().
#with device设备指定了执行计算的设备:
# "/cpu:0": 机器的 CPU.
# "/gpu:0": 机器的第一个 GPU, 如果有的话.
# "/gpu:1": 机器的第二个 GPU, 以此类推.
with Session() as session: # 创建执行图的上下文
with device('/cpu:0'): # 指定运算设备
mat1 = constant([[3, 3]]) # 创建源节点
mat2 = constant([[2], [2]])
product = matmul(mat1, mat2) # 指定节点的前置节点, 创建图
result = session.run(product) # 执行计算
print(result)
来源:http://blog.csdn.net/Ifinite_Max/article/details/51046191


猜你喜欢
- json文件格式这是yolov4模型跑出来的检测结果result.json下面是截取的一张图的检测结果{ "frame_id&qu
- ALTER FUNCTION [dbo].[get_FullAge]( @birthday datetime, @current
- 基本语法在讲述if-else时已经提到,如果有多个判断条件,Go语言中提供了Switch-Case的方式。如果switch后面不带条件相当于
- 引言算法思路假设我们有这样一个生物族群,他们的每个基因片段都是一个个三角形(即只含三个点和颜色信息),他们每个个体表现出的性状就是若干个三角
- 快到 520 了,分享几段 520 专属 Python 代码,不多说了,下面直接上货。No.1效果:主要代码:import tur
- 如下所示:' '.join(line.split())例如:'line dd',运行line.split()
- RSS 是一个可用多种扩展来表示的缩写:“RDF 站点摘要(RDF Site Summary)”、“真正简单的辛迪加(Really Simp
- 本文实例讲述了thinkPHP引入类的方法。分享给大家供大家参考,具体如下:这里以发送邮件类phpmailer为例1.将核心文件放入ORG目
- 项目环境:python3.6,django2.1接口功能: 将传入参数a和b字符串相加,返回结果1.新建一个django项目# 新建一个名为
- 这篇文章主要介绍了python可视化text()函数使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 用采集程序的优点有:无须维护网站,因为采集程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省服务器资源,一般采集程序就几个文件,
- Anaconda3-5.1.0-MacOSX-x86_64.pkg 下载安装后,附带安装了pytorch包。需要将环境调整到新的python
- 源码:#路飞骷髅import turtle as t#黄底帽子t.pu()t.goto(0,200)t.circle(-130,-80)t.
- 本文实例为大家分享了python实现贪吃蛇的具体代码,供大家参考,具体内容如下import pygameimport sysimport r
- 想到TDE(Transparent Data Encryption)。 TDE MSDN 说明: “透明数据加密”(TDE) 可对数据和日志
- 1. 导入各种模块基本形式为:import 模块名from 某个文件 import 某个模块2. 导入数据(以两类分类问题为例,即numCl
- 网上的教程大多数是教大家如何加载自定义模型和函数,如下图这个SelfAttention层是在训练过程自己定义的一个class,但如果要加载这
- python urllib urlopen()对象方法/代理的补充说明urllib 是 python 自带的一个抓取网页信息一个接口,他最主
- Python的装饰器(decorator)是一个很棒的机制,也是熟练运用Python的必杀技之一。装饰器,顾名思义,就是用来装饰的,它装饰的
- torch.nn.BatchNorm1d()1、BatchNorm1d(num_features, eps = 1e-05, momentu