财达证券工会总结如何在深度学习框架中实现LSTM

发布时间:2020-08-31  作者:配资开户上贵丰 本文章已累计被阅读 0

欢迎大家来到配资论坛网,下面小编就介绍下财达证券工会总结如何在深度学习框架中实现LSTM的相关资讯内容

  长短期记忆(LSTM)是现阶段循环系统神经元网络最广泛应用的种类,在解决时间序列分析数据信息时应用更为经常。有关 LSTM 的更为刻骨铭心的洞悉能够看一下这篇出色的blog:http://colah.github.io/posts/2015-08-Understanding-LSTMs/。

目地

  文中的关键目地是使阅读者了解在 TensorFlow 上完成基本 LSTM 神经元网络的详尽全过程。大家将采用 MNIST 做为数据。

MNIST 数据

  MNIST 数据包含手写数字的图象和相匹配的标识。我们可以依据下列内嵌作用从 TensorFlow 上免费下载并获取数据。

  from tensorflow.examples.tutorials.mnist import input_data

  mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

  数据信息被分为 3 个一部分:

  1. 训炼数据信息(mnist.train):55000 张图象

  2. 数据测试(mnist.test):10000 张图象

  3. 认证数据信息(mnist.validation):5000 张图象

  数据信息的形状

  讨论一下 MNIST 数据信息集中化的训炼数据信息的形状。数据的这三个一部分的形状全是一样的。

  训炼数据包含 55000 张 28x28 清晰度的图象,这种 784(28x28)清晰度值被进行成一个层面为 784 的单一空间向量,全部 55000 个清晰度空间向量(每一个图象一个)被存储为形状为 (55000,784) 的 numpy 数字能量数组,并取名为 mnist.train.images。

  全部这 55000 张图象都关系了一个类型标识(表明其隶属类型),一共有 10 个类型(0,1,2...9),类型标识应用独热编码的方式表明。因而标识将做为形状为 (55000,10) 的数字能量数组储存,并取名为 mnist.train.labels。

为何要挑选 MNIST?

  LSTM 一般 用于处理繁杂的编码序列解决难题,例如包括了 NLP 定义(词嵌入、伺服电机等)的語言模型难题。这种难题自身必须很多了解,那麼将难题简单化并集中化于在 TensorFlow 上完成 LSTM 的关键点(例如键入恢复出厂设置、LSTM 单元格及其网络架构设计方案),会是个非常好的挑选。

  MNIST 就恰好出示了那样的机遇。在其中的键入数据信息是一个清晰度值的结合。我们可以随便地将其恢复出厂设置,将注意力集中在 LSTM 完成关键点上。

完成

  在动手能力敲代码以前,先整体规划一下完成的宏伟蓝图,能够使敲代码的全过程更为形象化。

  VANILLA RNN

  循环系统神经元网络按时间线进行的情况下,如下图所显示:

  图上,

  1.x_t 意味着時间步 t 的键入;

  2.s_t 意味着時间步 t 的掩藏情况,可当作该互联网的「记忆力」;

  3.o_t 做为時间步 t 時刻的輸出;

  4.U、V、W 是全部時间步共享资源的主要参数,共享资源的必要性取决于大家的实体模型在每一时间步以不一样的键入实行同样的每日任务。

  当把 RNN 进行的情况下,互联网可被当作每一个時间步都受上一时间步輸出危害(時间步中间存有联接)的前馈控制互联网。

  2个常见问题

  以便更圆满的开展完成,必须清晰2个定义的含意:

  1.TensorFlow 中 LSTM 单元格的表述;

  2. 数据信息键入 TensorFlow RNN 以前先恢复出厂设置。

  TensorFlow 中 LSTM 单元格的表述

  在 TensorFlow 中,基本的 LSTM 单元格申明为:

  tf.contrib.rnn.BasicLSTMCell(num_units)

  这儿,num_units 指一个 LSTM 单元格中的模块数。num_units 能够比成前馈控制神经元网络中的掩藏层,前馈控制神经元网络的掩藏层的连接点总数相当于每一个時间步中一个 LSTM 单元格内 LSTM 模块的 num_units 总数。下面的图能够协助形象化了解:

  每一个 num_units LSTM 模块都能够当作一个规范的 LSTM 模块:

  之上数据图表来源于blog(详细地址:http://colah.github.io/posts/2015-08-Understanding-LSTMs/),该blog合理详细介绍了 LSTM 的定义。

  数据信息键入 TensorFlow RNN 以前先恢复出厂设置

  在 TensorFlow 中非常简单的 RNN 方式是 static_rnn,在 TensorFlow 中界定以下:

  tf.static_rnn(cell,inputs)

  尽管也有其他的常见问题,但在这儿大家仅关心这两个。

  inputs 引数接纳形状为 [batch_size,input_size] 的张量目录。目录的长短为将互联网进行后的時间计步,即目录中每一个原素都各自相匹配互联网进行的時间步。例如在 MNIST 数据信息集中化,大家有 28x28 清晰度的图象,每一张都能够当做有着 28 行 28 个清晰度的图象。大家将互联网按 28 个時间步进行,令其在每一个時间步中,能够键入一行 28 个清晰度(input_size),进而历经 28 个時间步键入一整张图象。给出图象的 batch_size 值,则每一个時间步将各自接到 batch_size 个图象。详细下面的图表明:

  由 static_rnn 转化成的輸出是一个形状为 [batch_size,n_hidden] 的张量目录。目录的长短为将互联网进行后的時间计步,即每一个時间步輸出一个张量。在这个完成中大家只需关注最后一个時间步的輸出,由于一张图象的全部行都键入到 RNN,预测分析将要在最后一个時间步转化成。

  如今,全部的艰难一部分都早已进行,能够刚开始敲代码了。要是梳理了定义,敲代码全过程是很形象化的。

编码

  在刚开始的情况下,主导入一些必需的相互依赖、数据,并申明一些变量定义。设置 batch_size=128 、 num_units=128。

  import tensorflow as tffrom tensorflow.contrib import rnn

  #import mnist datasetfrom tensorflow.examples.tutorials.mnist import input_data

  mnist=input_data.read_data_sets("/tmp/data/",one_hot=True)#define constants#unrolled through 28 time steps

  time_steps=28#hidden LSTM units

  num_units=128#rows of 28 pixels

  n_input=28#learning rate for adam

  learning_rate=0.001#mnist is meant to be classified in 10 classes(0-9).

  n_classes=10#size of batch

  batch_size=128

  如今设定占位性病变、权重值及其参考点自变量(用以将輸出的形状从 [batch_size,num_units] 变换为 [batch_size,n_classes]),进而能够预测分析恰当的类型。

  #weights and biases of appropriate shape to accomplish above task

  out_weights=tf.Variable(tf.random_normal([num_units,n_classes]))

  out_bias=tf.Variable(tf.random_normal([n_classes]))#defining placeholders#input image placeholder

  x=tf.placeholder("float",[None,time_steps,n_input])#input label placeholder

  y=tf.placeholder("float",[None,n_classes])

  如今大家获得了形状为 [batch_size,time_steps,n_input] 的键入,大家必须将其转化成形状为 [batch_size,n_inputs] 、长短为 time_steps 的张量目录,进而能够将其键入 static_rnn。

  #processing the input tensor from [batch_size,n_steps,n_input] to "time_steps" number of [batch_size,n_input] tensors

  input=tf.unstack(x ,time_steps,1)

  如今我们可以界定互联网了。大家将运用 BasicLSTMCell 的一个层,将大家的 static_rnn 从这当中获取出去。

  #defining the network

  lstm_layer=rnn.BasicLSTMCell(n_hidden,forget_bias=1)

  outputs,_=rnn.static_rnn(lstm_layer,input,dtype="float32")

  大家只考虑到最后一个時间步的键入,从这当中转化成预测分析。

  #converting last output of dimension [batch_size,num_units] to [batch_size,n_classes] by out_weight multiplication

  prediction=tf.matmul(outputs[-1],out_weights) out_bias

  界定损失函数、优化器和准确度。

  #loss_function

  loss=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction,labels=y))#optimization

  opt=tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss)#model evaluation

  correct_prediction=tf.equal(tf.argmax(prediction,1),tf.argmax(y,1))

  accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))

  如今大家早已进行界定,能够运行了。

  #initialize variables

  init=tf.global_variables_initializer()with tf.Session() as sess:

  sess.run(init)

  iter=2while iter<800:

  batch_x,batch_y=mnist.train.next_batch(batch_size=batch_size)

  batch_x=batch_x.reshape((batch_size,time_steps,n_input))

  sess.run(opt, feed_dict={x: batch_x, y: batch_y})if iter ==0:

  acc=sess.run(accuracy,feed_dict={x:batch_x,y:batch_y})

  los=sess.run(loss,feed_dict={x:batch_x,y:batch_y})print("For iter ",iter)print("Accuracy ",acc)print("Loss ",los)print("__________________")

  iter=iter 1

  必须留意的是大家的每一张图象在刚开始时被平整化作 784 维的单一空间向量,涵数 next_batch(batch_size) 务必回到这种 784 维空间向量的 batch_size 批频次。因而他们的形状要被更新改造成 [batch_size,time_steps,n_input],进而能够被大家的占位符接纳。大家还能够测算实体模型的准确度:

  #calculating test accuracy

  test_data = mnist.test.images[:128].reshape((-1, time_steps, n_input))

  test_label = mnist.test.labels[:128]print("Testing Accuracy:", sess.run(accuracy, feed_dict={x: test_data, y: test_label}))

  在运作的情况下,实体模型的检测准确度为 99.21%。

  蓄电池充电時刻:

  技术专业个股配资老师上课剖析的专业知识,提议你能来贵丰配资网址详加掌握。(网页搜索:贵丰配资)

  1、贵丰配资两年老知名品牌,会员注册送200元服务费。

  2、在线充值客户可获58元-58888元红包。

  3、按天配资3-10倍杆杠,随借随还贷款,项目投资時间随意。

  4、按月配资3-10倍杆杠,贷款利息0.8分,让您的个股飞起来。

  5、VIP配资五十万元起配,证券公司单独帐户,特享提成万二。

  6、财产安全三方管控、出金便捷、提现便捷。

  7、元加盟代理营销推广,邀请人取得成功配资,最大可得到 顾客提成的50%,月赚万余元。

本文地址:http://www.hoomotor.com/kh/7558.html
说明:这是一篇关于维度,时间,数据,图像,形态的文章,文章的标题是《财达证券工会总结如何在深度学习框架中实现LSTM》。
版权声明:本文章来源于网络,版权归 原作者 所有,欢迎分享本文,转载请保留出处!
上一篇:北京微影时代股票代码闲谈股票里的龙头是以什么来定义的
下一篇:五矿证券福州聊聊股票7.1日起“限购”!保守稳健型会有问题!对这事

(文章内容均来自网络,如有错误或不当,请联系)