学习tensorflow学习代码,买什么笔记本好

 TensorFlow学习笔记(1)--TensorFlow简介,常用基本操作
我的图书馆
 TensorFlow学习笔记(1)--TensorFlow简介,常用基本操作
要将更快且更便捷地应用于新的问题中,选择一款深度学习工具是必不可少的步骤。&TensorFlow是谷歌于日正式开源的计算框架。TensorFlow计算框架可以很好地支持深度学习的各种。TensorFlow很好地兼容了学术研究和工业生产的不同需求。一方面,TensorFlow的灵活性使得研究人员能够利用它快速实现新的模型设计;另一方面,TensorFlow强大的分布式支持,对工业界在海量数据集上进行的模型训练也至关重要。作为谷歌开源的深度学习框架,TensorFlow包含了谷歌过去10年间对于人工智能的探索和成功的商业应用。除了TensorFlow,目前还有一些主流的深度学习开源工具可以使用。每个工具都有着各自的特点,可以根据自己的需求和喜好选择适合自己的深度学习工具。比如我一开始学习深度学习的时候接触的是Caffe,然后TensorFlow开源之后了解到了TensorFlow的一些特性,感觉还是更喜欢TensorFlow的风格,当然也考虑到会使用一种以上的深度学习工具也算见不错的事情。其它一些主流的深度学习工具有:Caffe:&(Convolutional Architecture for Fast Feature Embedding) BVLCMXNet:&(百度 DMLC(分布式机器学习社区) 简称”深盟”)Torch:&(Facebook Google DeepMind Twitter FAIR)Theano:&(the LISA group at the University of Montreal(蒙特利尔))TensorFlow:&(Google)CNTK(微软深度学习工具包 )DeepLearning4J:&deepmat:&Neon:&Eblearn:&PyLearn:&chainer:&Bahrampour S, Ramakrishnan N, Schott L, et al. Comparative Study of Deep Learning Software Frameworks[J]. Computer Science, 2016.这篇文章对现在流行的五个开源深度学习框架 caffe、Neon、TensorFlow、Theano、Torch 做了很严谨比较。作者开源了他们的比较 Benchmarks 代码:。文章比较了:可扩展性(extensibility)、hardware utilization(硬件利用率)和速度(speed)三个方面评估测试都是部署在单机上,对于多线程 CPU、GPU(Nvidia Titan X)都进行测试速度评估标准包括了梯度计算时间(gradient computation time)、前向传播时间(forward time)对于卷积神经网络,作者还对这几个深度框架支持的不同的卷积算法以及相应的性能表现做了实验通过实验得出了以下结论Theano、Torch 是最具扩展性的深度学习框架在 CPU 上的测试性能来看,Torch 最优,其次是 Theano在 GPU 上的性能表现,对于大规模卷积以及全连接网络,还是 Torch 最优,其次是 NeonTheano 在部署和训练 LSTM 网络中夺得拔筹caffe 是最容易测试评估性能的标准深度学习框架最后,TensorFlow 与 Theano 有些相似,是比较灵活的框架,但是其性能表现,目前还比不上上面的几个框架但是,毕竟这篇文章已经是过去时了,那时候TensorFlow 还只能用 cuDNN v.2 版本,而我现在已经装的是v5.1版本,而且TensorFlow 也已经发布了1.0版本。现在各工具性能如何,还需要新的评测才能说明问题。变量:创建、初始化、保存和加载当训练模型时,用变量来存储和更新参数。变量包含张量 (Tensor)存放于内存的缓存区。建模时它们需要被明确地初始化,模型训练后它们必须被存储到磁盘。这些变量的值可在之后模型训练和分析是被加载。本文档描述以下两个TensorFlow类。点击以下链接可查看完整的API文档:&&类&&类&参考- 添加神经层输入参数有&inputs,&in_size,&out_size, 和&activation_function
def add_layer(inputs, in_size, out_size, activation_function=None):
weights = tf.Variable(tf.random_normal([in_size, out_size]), name='weights')
biases = tf.Variable(tf.zeros([1, out_size]) + 0.1, name='biases')
y = tf.matmul(inputs, weights) + biases
if activation_function is None:
outputs = y
outputs = activation_function(y)
return outputs1234567891012345678910- lossloss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices=[1]))分类问题的 loss 函数 cross_entropy 交叉熵&loss = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(prediction), reduction_indices=[1]))- 创建当创建一个变量时,你将一个张量作为初始值传入构造函数Variable()。TensorFlow提供了一系列操作符来初始化张量,初始值是常量或是随机值。&注意,所有这些操作符都需要你指定张量的shape。那个形状自动成为变量的shape。变量的shape通常是固定的,但TensorFlow提供了高级的机制来重新调整其行列数。# Create two variables.
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35), name="weights")
biases = tf.Variable(tf.zeros([200]), name="biases")123123- 初始化变量的初始化必须在模型的其它操作运行之前先明确地完成。最简单的方法就是添加一个给所有变量初始化的操作,并在使用模型之前首先运行那个操作。&使用tf.global_variables_initializer()添加一个操作对变量做初始化。记得在完全构建好模型并加载之后再运行那个操作。# 7.初始化变量
init = tf.global_variables_initializer()
# tf.global_variables_initializer()是并行地初始化所有变量
# 有时候会需要用另一个变量的初始化值给当前变量初始化,这就需要注意了
# 用其它变量的值初始化一个新的变量时,使用其它变量的initialized_value()属性。
# 你可以直接把已初始化的值作为新变量的初始值,或者把它当做tensor计算得到一个值赋予新变量。
# w1 = tf.Variable(tf.random_normal([784, 200], stddev=0.35), name="w1")
# w2 = tf.Variable(w1.initialized_value(), name="w2")
# 8.启动图 (graph)
sess = tf.Session()
sess.run(init)123456789101112123456789101112- 由另一个变量初始化你有时候会需要用另一个变量的初始化值给当前变量初始化。由于tf.global_variables_initializer()是并行地初始化所有变量,所以在有这种需求的情况下需要小心。用其它变量的值初始化一个新的变量时,使用其它变量的initialized_value()属性。你可以直接把已初始化的值作为新变量的初始值,或者把它当做tensor计算得到一个值赋予新变量。w1 = tf.Variable(tf.random_normal([784, 200], stddev=0.35), name="w1")
w2 = tf.Variable(w1.initialized_value(), name="w2")1212
TA的推荐TA的最新馆藏[转]&
喜欢该文的人也喜欢学习tensorflow,买什么笔记本好? - 知乎79被浏览20215分享邀请回答78 条评论分享收藏感谢收起&&&&&&&&&&&&&&&&&&
posts - 3,comments - 0,trackbacks - 0
  本人学习Tensorflow是为了完成毕业设计的工作,之前并没有用过其他的深度学习平台,Tensorflow作为当前很流行的一个平台,无论是教学文档,还是使用其开发的工程,这些资源都是很丰富的,所以很适合新手来进行入门。Tensorflow的具体背景我就不过多的介绍了,网上有很多的资源。另外我写这一系列博客的目的是激励自己吧,逼着自己学得更透彻一点,毕竟会用和能熟悉的写成教程还是两码事,希望自己能坚持下去。
2.Tensorflow安装
  我使用的是自己的笔记本电脑,配置是i7-6700hq + GTX1066,系统是Ubuntu 16.04。Tensorflow相对来说还是比较容易安装的,其中安装CUDA和Cudnn比较费劲,但网上的教程也很多,去搜一下就可以了。我是使用Anaconda的方式安装的Tensorflow,因为我之前使用的都是python3.5,但是我要跑得tensorflow项目都是基于2.7的版本,为了防止两种python版本冲突之类的事情发生,我选择使用anaconda。anaconda用来管理python包是一种很强大的存在,推荐大家使用。之后的安装就很简单的,激活一个环境,使用pip安装即可。
3.Tensorflow基本使用
Tensorflow是通过如下方式进行计算的:
使用图(graph)来表示计算任务
在会话(Session)的上下文(context)中执行图
使用tensor表示数据
通过变量(Variable)维护状态
使用feed和fetch可以为任何操作赋值或者从其中获取数据
这里就引用官方文档的了:
TensorFlow是一个编程系统,使用图来表示计算任务。图中的节点被称之为op(operation)。每一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。每个Tensor是一个类型化的多维数组。例如,你可以将一小组图像集表示为一个四维浮点数组,着四个维度分别是[batch, height, width, channels]。
一个TensorFlow图描述了计算的过程。为了进行计算,图必须在会话里被启动。会话将图的op分发到诸如cpu或gpu之类的设备上,同时提供执行op的方法。这些方法执行后,将产生的Tensor返回。在Python语言中,返回的tensor是numpy ndarray对象。
TensorFlow程序通常被组织成一个构建阶段和一个执行阶段。在构建阶段,op的执行步骤被描述成一个图。在执行阶段,使用会话执行图中的op。
例如,通常在构建阶段创建一个图来表示和训练神经网络,然后在执行阶段反复执行图中的训练op。
  通常我们在构建阶段搭建神经网络框架,在执行阶段,通过迭代来训练参数。
下面是一个例子,也是所有语言的第一个程序,也就是helloworld。
import tensorflow as tf
hello = tf.constant('Hello, Tensorflow!')
sess = tf.Session()
print sess.run(hello)
a = tf.constant(10)
b = tf.constant(20)
print sess.run(a+b)
其中tf.constant()是在构建,而sess.run()则是在运行
阅读(...) 评论()

我要回帖

更多关于 如何学习tensorflow 的文章

 

随机推荐