從RNN的輸出結果到loss的計算

2021-08-10 14:44:13 字數 900 閱讀 4305

首先在得到embeddingout的結構後,宣告乙個rnn單元,大小為10

cell = tf.nn.rnn_cell.basticrnncell(num_utis = 10)

計算output和state

output,state = tf.nn.dynamic_rnn(cell,embedding_output,dtype = tf.float32)

然後可以新增droupout

output = tf.nn.droupout(output,0.01)

如果你的需要lstm最後乙個節點的結果,也就是最後乙個time跑完的結果,那麼

你需要轉置,然後每乙個的最後輸出拼成矩陣,然後拿出來

output = tf.transpose(output,[1,0,2])

last = tf.gather(output,int(output.get_shape()[0]-1)

為了完成**,需要在此之上連線乙個全連線層,來將rnn_size的資料輸出為你的類別大小

weight = tf.variable(tf.truncated_normal(tf.truncated_normal(rnn_size,2),stddev=0.1))

bias = tf.variable(tf.constant(0.1,shape=[2]))

logits_out = tf.nn.softmax(tf.matmul(last,weight)+bias)

此時輸出的維度和你的目標維度相同,就可以計算loss了

losses = tf.nn.sparse_softmax_cross_entropy_with_logits(logits_out,y_output)

loss = reduce_mean(losses)

接下來就是建立優化器,最後就是迭代了。

輸出 time 命令的結果到檔案中

譯至 由於輸出 time 命令的結果到檔案時使用的錯誤的方式,所以將其記錄下來。環境是bash。將執行的a.out程式的輸出和其所花的時間重定向到日誌檔案中 time a.out logfile time a.out tee logfile 上面的例子是重定向結果到logfile 下面的例子是通過t...

從URL輸入到請求結果返回的過程

問 瀏覽器位址列輸入url後到請求完成瀏覽器發生了什麼?答 瀏覽器先進行dns解析,根據dns系統查詢ip位址,解析出ip位址,發起請求建立tcp鏈結,請求html檔案資源 深入 那麼為什麼url需要解析 編碼 那麼url編碼的規則是什麼?如何保證這個編碼規則?關於dns解析流程,以及dns優化 開...

關於rnn神經網路的loss函式的一些思考

做了這麼長時間的基於深度學習的nlp,愈發可以感受到bayesian的意思,語言模型裡面一切皆是分布,問題答案都是分布,乙個問題模擬出來的是乙個答案的分布 我覺得我做的最好的乙個聊天模型,就是先將問題表示成乙個100維的高斯分布,然後計算各個答案跟這個分布的契合概率,當然這個模型肯定不能放出來,但是...