- 占位符
留意,我们必须谨慎地肯定什么时刻该缩放哪一部分数据。比较常见的缺点就是在拆分测试和练习数据集之前缩放全部数据集。因为我们在履行缩放时会涉及到计算统计数据,例如一个变量的最大年夜和最小值。但在实际世比赛我们并没有来自将来的不雅测信息,所以必须对练习数据按比例进行统计计算,并将统计结不雅应用于测试数据中。不然的话我们就应用了将来的时序猜测信息,这经常令猜测度量偏向于正向。
TensorFlow 简介
TensorFlow 是一个十分优良的框架,今朝是深度进修和神经收集方面用户最多的框架。它基于 C++的底层后端,但平日经由过程 Python 进行控制。TensorFlow 应用强大年夜的静态图表征我们须要设计的算法与运算。这种办法许可用户指定运算为图中的结点,并以张量的情势传输数据而实现高效的算法设计。因为神经收集实际上是数据和数学运算的计算图,所以 TensorFlow 能很好地支撑神经收集和深度进修。
总的来说,TensorFlow 是一种采取数据流图(data flow graphs),用于数值计算的开源软件库。个中 Tensor 代表传递的数据为张量若干好多维数组),Flow 代表应用计算图进交运算。数据流图用「结点」(nodes)和「边」(edges)构成的有向图来描述数学运算。「结点」一般用来表示施加的数学操作,但也可以表示数据输入的起点和输出的终点,或者是攫取/写入持久变量(persistent variable)的终点。边表示结点之间的输入/输出关系。这些数据边可以传送维度可动态调剂的多维数据数组,即张量(tensor)。
履行加法的简单计算图
在上图中,两个零维张量(标量)将履行相加义务,这两个张量储存在两个变量 a 和 b 中。这两个值流过图形在达到正方形结点时被履行相加义务,相加的结不雅被储存在变量 c 中。实际上,a、b 和 c 可以被看作占位符,任何输入到 a 和 b 的值都将会相加到 c。这恰是 TensorFlow 的基来源基本理,用户可以经由过程占位符和变量定义模型的抽象表示,然后再用实际的数据填衬┞芳位符以产生实际的运算,下面的代码实现了上图简单的计算图:
- # Import TensorFlow
- import tensorflow as tf
- # Define a and b as placeholders
- a = tf.placeholder(dtype=tf.int8)
- b = tf.placeholder(dtype=tf.int8)
- # Define the addition
- c = tf.add(a, b)
- # Initialize the graph
- graph = tf.Session()
- # Run the graph
- graph.run(c, feed_dict{a: 5, b: 4})
正如前面所提到的,神经收集的初始源自占位符。所以如今我们先要定义两个占位符以拟合模型,X 包含神经收集的输入(所有 S&P 500 在时光 T=t 的股票价格),Y 包含神经收集的输出(S&P 500 在时光 T=t+1 的指数值)。
是以输入数据占位符的维度可定义为 [None, n_stocks],输出占位符的维度为 [None],它们分别代表二维张量和一维张量。懂得输入和输出张量的维度对于构建全部神经收集十分重要。
- # Placeholder
- X = tf.placeholder(dtype=tf.float32, shape=[None, n_stocks])
- Y = tf.placeholder(dtype=tf.float32, shape=[None])
以上代码中的 None 指代我们临时不知道每个批量传递到神经收集的数量,所以应用 None 可以保持灵活性。我们后面会定义控制每次练习时应用的批量大年夜小 batch_size。
- 变量
除了占位符,变量是 TensorFlow 表征数据和运算的另一个重要元素。固然占位符在计算图内平日用于储存输入和输出数据,但变量在计算图内部是异常灵活的容器,它可以在履行中进行修改与传递。神经收集的权重和偏置项一般都应用变量定义,以便在练习中可以便利地进行调剂,变量须要进行初始化,后文将具体解释这一点。
谷歌将来针对 TensorFlow 的筹划会是什么呢?至少在我看来,TensorFlow 缺乏一个简洁的图形用户界面,用于在 TensorFlow 后端设计和开辟神经收集架构。也许这就是谷歌将来的一个目标
该模型由四个隐蔽层构成,第一层包含 1024 个神经元,然后后面庞层依次以 2 的倍数削减,即 512、256 和 128 个神经元。后面的层级的神经元依次削减就紧缩了前面层级中采取的特点。当然,我们还能应用其它神经收集架构和神经元设备以更好地处理数据,例如卷积神经收集架构合适处理图像数据、轮回神经收集合适处理时序数据,但本文只是为入门者扼要地介绍若何应用全连接收集处理时序数据,所以那些复杂的架构本文并不会评论辩论。
推荐阅读
敏捷框架比较:Scrum vs Kanban vs Lean vs XP
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 在这篇文┞仿中, Alesia Krush将对四种最风行的敏捷开辟办法进行比较,给出了每种办法的优缺点。市场上有>>>详细阅读
地址:http://www.17bianji.com/lsqh/39204.html
1/2 1