訓練LSTM 一路的坎坷

2021-09-22 07:54:27 字數 1182 閱讀 5366

很久沒寫部落格了,今天必須記錄一下這個大轉折。

最近一直在研究語言模型,找了乙個做文字生成lstm,想用來檢測句子的流暢性,把訓練集替換成我們自己的,然後就開始訓練模型。

對於乙個lstm小白,剛開始很排斥去搞明白它的原理,然而,事實證明,我早晚得弄明白它,繞不過去,還不如早早研究,不至於浪費這麼長時間,這次真真的給了我乙個教訓啊!!!

重點來了:

1. 網上做文字生成的訓練集一般都是散文詩集之類的,所以找的這個**作者訓練的時候不用考慮斷句。因為有標點符號之類的特殊字元,而且需求是學習訓練語料的說話方式,只要生成的文字語義合理即可。一開始的無知,直接替換掉訓練集就開始訓,訓完就測,結果當然跟想象中的不一樣了。

後來發現,我們的訓練集是要需要考慮分行的,所以input的時候得保證一行一行的喂。行與行之間不能直接首尾相連。然後就在這個**上改,按我的方式喂資料,事實證明,結果跟預期差不太多,給我激動的啊。

所以,訓練之前,一定要先搞明白大家的需求是不是一樣,原理清楚了,覺得ok了,再訓練,還是不能太心急。

2. 訓練完之後,找了幾條資料測試了一下,結果還可以,於是就要把模型放進我的專案裡用。因為我們專案留的介面是把模型的網路結構和引數打包成.pb檔案(我用的tensorflow,訓練完會把引數和網路結構分開儲存,我需要把.ckpt檔案和.pbtxt檔案做freeze)。順利打包完之後,就拿一條測了一下,萬萬沒想到,同樣的資料每次的結果都不一樣,耽誤了兩天還是沒想明白為什麼,就想著,反正每次的結果都相差不大,先湊活用,批量測試看看改之後的模型效果如何。當時沒注意到測試速度的問題,就開始批量測試了。阿歐,原本10分鐘就測完的資料,跑了一晚上才測了1/4,我都驚呆了。想不明白,我也沒做什麼大改動啊,不至於這麼慢。可能一大早頭腦比較清醒,我對比了新模型的網路大小,引數大小與之前用的檔案大小,我的新.pbtxt竟然比之前的大很多,然後我又去讀了一下**testmodel.py。結果,是我把train的pbtxt當成test的用了。又重新freeze之後測試,速度明顯快了,而且之前的每次測試結果都不一樣問題也隨之解決,kill two birds with one stone(昨天新學的),總算皆大歡喜了,還好我沒有放棄。

安慰自己:有時候乙個不起眼的小問題就是能折磨你好幾天,等發現問題後,都想跪了,也算有收穫。

一路風雨,一路收穫

不知不覺中,我們又走過了半個年頭。真稱得上是 時光似箭,日月如梭 回首望去,好似自己什麼都沒有得到,可是真正收穫了什麼,我們的心會告訴我們。在我們提高班這個集體中,我們已經邁入了三年級了,我們也開始挑大樑,獨當一面了,但是每次和師哥師姐一起交流學習的時候,總是能看到我們之間那暫時還逾越不過去距離,什...

一路向左or一路向右

向左 很早之前就有想過,如果按照當前電腦的組成方式 一台主機,乙個顯示器,一些輸入裝置 滑鼠鍵盤 未來電腦完全可以只購買乙個顯示器和滑鼠鍵盤,所有的資料儲存處理都可以放在雲端,就跟現在的雲主機一樣租賃計算,這樣個人電腦只負責顯示和獲取使用者的互動輸入.以後如果購買電腦,可以買個顯示器然後租賃xx公司...

人生,就是一路選擇,一路堅持!

走過如歌的歲月,走過平淡的生活,一路走來,突然發現 選擇 一詞無時無刻不在我們的身邊!似乎它與我們息息相關,形影不離 似乎我們每走一步,它都在告誡我們,要三思而後行!也許人生,就是一路選擇的旅程,一路選擇,一路堅持!忙碌的生活,喧囂的日子,為了心中的理想,為了虛榮的功名利祿,我們在千萬條的路上行走,...