tf.contrib.rnn.BasicLSTMCell()中间程序解释

data = tf.reshape(x,[-1, 16, 16])
    #lstmUnits = 64
    lstmCell = tf.contrib.rnn.BasicLSTMCell(lstmUnits)
    lstmCell = tf.contrib.rnn.DropoutWrapper(cell=lstmCell, output_keep_prob=keep_prob)
    value, _ = tf.nn.dynamic_rnn(lstmCell, data, dtype=tf.float32) #value.shape: [batch_size,step,lstmUnits] 
    
    #weight = tf.Variable(tf.truncated_normal([lstmUnits, K]))
    weight = tf.Variable(tf.truncated_normal([lstmUnits, n_output])/np.sqrt(n_output))
    bias = tf.Variable(tf.constant(0.1, shape=[n_output]))
    value = tf.transpose(value, [1, 0, 2])#对value进行value = tf.transpose(value, [1, 0, 2])操作后得到的value.shapeshape为[step,batch_size,lstmUnits]
    
    #取最终的结果值
    last = tf.gather(value, int(value.get_shape()[0]) - 1) #其中value.get_shape()[0]) - 1找到value经过transpose后的最后一个分片
   
    pred = tf.nn.relu6(tf.matmul(last, weight) + bias) / 6
    y_label = tf.argmax(pred, axis =1)
    corr = tf.equal(tf.argmax(pred,1), tf.argmax(y,1)) 
    accu = tf.reduce_mean(tf.cast(corr, tf.float32))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值