寫在前面git
今天剛剛開通博客,主要想法跟以前某位博主說的同樣,但願經過博客園把天天努力的點滴記錄下來,也算一種堅持的動力。我是小白一枚,有啥問題歡迎各位大神指教,鞠躬~~學習
換了新工做,目前手頭是OCR項目,之前從事過圖像處理,可是深度學習的知識幾乎爲0,此次經過這個項目但願本身可以入門,今天記錄一下有關tensorflow加載不一樣模型的問題。我算是從0開始,直接閱讀git上面的開源代碼,不少明明很簡單的問題也會困擾好久,可是解決以後確定恍然大悟,歸咎仍是基礎問題,而後去翻書翻博客。。。。。OCR項目裏面須要用到2個不一樣的模型,一個模型用來檢測文本框位置,另外一個模型在第一個模型分割出來的文本框的基礎上對文本字符進行識別。起初文本檢測工程(我研究的seglink)和字符識別(desennet)是分開的,我在將他們合併的時候遇到了一個困擾的問題(其實很low)..rest
首選是tensorflow的API:tf.train.Saver()這行代碼是將全部tensorflow的variable保存,那麼問題來了,我項目中用2個徹底不一樣的模型,一旦進行tf.train.Saver()以後會把2個模型的variable所有保存起來,下面進行saver.restore(sess,checkpoint)的時候就報錯啦,checkpoint路徑是我指定的須要加載的模型路徑,restore恢復變量的時候checkpoint文件根據相應變量名映射到相應的tensor值,我這邊tf.train.Saver()的是整個工程中variable,因此會報「XXXX key「不存在找不到。blog
解決辦法很簡單,以下代碼:深度學習
在tf.train.Saver()中傳遞須要加載的變量名列表,這裏多個scope我不知道怎麼傳遞,因此這裏分了3個變量列表,疊加起來再傳遞,解決了,太簡單了,我都很差意思寫出來,哈哈哈。第一篇博客,你們不要鄙視博客