LSTM Custom

def InitLSTM(self,LSTM,Name,InputSize)

      LSTM.Forget_Wights_X=tf.Variable(tf.truncated_normal(

                                                  shape=  [InputSize,LSTM.Size],stddev=0.1))

      LSTM.Forget_Wights_Z=tf.Variable(tf.truncated_normal(

                                                  shape=[LSTM.Size,LSTM.Size],stddev=0.1),)

      LSTM.Forget_Biases=tf.Variable(tf.zeros(shape=[LSTM.Size]))

      LSTM.Output_Wights_X=tf.Variable(tf.truncated_normal(

                                                 shape=[InputSize,LSTM.Size],stddev=0.1),)

     LSTM.Output_Wights_Z=tf.Variable(tf.truncated_normal(

                                                 shape=[LSTM.Size,LSTM.Size]),)

     LSTM.Output_Biases=tf.zeros(shape=[LSTM.Size],)

     LSTM.Generate_Wights_Xi=tf.Variable(tf.truncated_normal(

                                      shape=[InputSize,LSTM.Size],stddev=0.1),)

     LSTM.Generate_Wights_XC=tf.Variable(tf.truncated_normal(

                                      shape=[InputSize,LSTM.Size],stddev=0.1),)

     LSTM.Generate_Wights_Zi=tf.Variable(tf.truncated_normal(

                                     shape=[LSTM.Size.Size],stddev=0.1))

     LSTM.Generate_Wights_ZC=tf.Variable(tf.truncated_normal(

         shape=[LSTM.Size,LSTM.Size],stddev=0.1))

          LSTM.Generate_Biases=tf.zeros(shape=[LSTM.Size])

          LSTM.HState=tf.zeros(shape=[LSTM.Size],name="HState"+Name)

         LSTM.CState=tf.zeros(shape=[LSTM.Size],name="CState"+Name)


def      CalculateLSTM(self,LSTM,Input):

          Out=None

           for i in    range(LSTM.Step):

           Forget=tf.matmul(Input,LSTM.Forget_Wights_X)\

                             +tf.matmul(LSTM.HState,LSTM.Forget_Wights_Z)\

                                   +LSTM.Forget_Biases

          Generate_i=tf.matmul(Input,LSTM.Generate_Wights_Xi)\

                                    +tf.matmul(LSTM.HState,LSTM.Generate_Wights_Zi)\

                                        +LSTM.Generate_Biases_i

           Generate_C=tf.matmul(Input,LSTM.Generate_Wights_XC)\

                                       +tf.matmul(LSTM.HState,LSTM.Generate_Wights_ZC)\

                                            +LSTM.Generate_Biases_C

           Out=tf.matmul(Input,LSTM.Output_Wights_X)\

                                      +tf.matmul(LSTM.HState,LSTM.Output_Wights_Z)\

                                          +LSTM.Output_Biases

           #Updata State

              LSTM.CState=Forget*LSTM.HState+Generate_C*Generate_i

              LSTM.HState=Out*tf.tanh(LSTM.CState)

             returnOut

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简单线性回归 import tensorflow as tf import numpy # 创造数据 x_dat...
    CAICAI0阅读 3,574评论 0 49
  • 作者 | 武维AI前线出品| ID:ai-front 前言 自然语言处理(简称NLP),是研究计算机处理人类语言的...
    AI前线阅读 2,599评论 0 8
  • Q 为什么要做生肖茶? A 茶,作为我们中国传统文化,始终在与其他文化的交融结合中延伸着自身的意义。尤其是福鼎白茶...
    白茶娜娜阅读 889评论 0 0
  • 以蓝色泛滥你的 无疑是月光 我们的车辙 在水下 跑成咏叹调 春天倒伏于我们心里 像烈酒在三叶草的末年燃烧 火焰寂静...
    DConan阅读 254评论 0 4
  • 2017年算是自己踏踏实实感觉到小进步的一年,比如可以独自开车上下班、走四环、走高速,开始跟着网上课程学习编程,开...
    未满2011阅读 336评论 0 0