這篇文章主要介紹tensorflow之tf.record如何實現存浮點數數組,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
因為最近打算轉戰Tensorflow,我將自己的腦部腫瘤分割課題從caffe轉移到tensorflow上去
然后我將數據存到Tf.record里面去,出現來不收斂,以及精度上不去的等現象。
最終原因是:數據 存入tf.record,我轉為二進制也就是使用來tobytes()函數,再將數據存入tf.record,浮點數以二進制存入會有精度丟失問題。
其實:當發現這個精度上不去的現象之后,我第一反應就是是不是精度丟失,然后上網跟別人交流,告訴我不可能是精度丟失,不信讓我輸出來看,結果我輸出來看后,發現數值確實沒有變化,所以就放棄來這個精度丟失的方向,轉而去找別的方向,結果幾經周折,無果之后,再來嘗試這個,發現,確實是轉為二進制導致來精度丟失(確實浪費來我很多精力,甚至一度想放棄)。
經驗教訓:跟別人交流,一定要保持理性,可以嘗試別人的方法,但是不能丟掉自己的想法,因為沒有人比你自己更了解你的項目。
下面來講講,如何將浮點數組存進tf.record:簡單記錄,不懂可以評論:
import tensorflow as tf import numpy as np def _floats_feature(value): #這里的value=后面沒有括號 #千萬不要寫成return tf.train.Feature(float_list=tf.train.FloatList(value=[value])) return tf.train.Feature(float_list=tf.train.FloatList(value=value)) # data you would like to save, dtype=float32 #這里我生成了一個浮點數數組,來假定作為我的數據 data = np.random.randn(shape=(5, 5)) #這里一定要鋪平,不然存不進去 data = data.flatten() # open tfrecord file writer = tf.python_io.TFRecordWriter(train_data_path) # make train example example = tf.train.Example(features=tf.train.Features( feature={'data': _floats_feature(data)})) # write on the file writer.write(example.SerializeToString())
這就是存數據了,下一步讀取數據,一定要注意將原來鋪平的數據reshape為原來的形狀。
# open tfrecorder reader reader = tf.TFRecordReader() # read file _, serialized_example = reader.read(filename_queue) # read data features = tf.parse_single_example(serialized_example, features={'data': tf.VarLenFeature(tf.float32)}) # make it dense tensor data = tf.sparse_tensor_to_dense(features['data'], default_value=0) # reshape data = tf.reshape(data, [5,5]) return tf.train.batch(data, batch_size, num_threads, capacity)
以上是“tensorflow之tf.record如何實現存浮點數數組”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站欄目:tensorflow之tf.record如何實現存浮點數數組-創新互聯
網頁地址:http://m.kartarina.com/article16/cdccdg.html
成都網站建設公司_創新互聯,為您提供小程序開發、移動網站建設、全網營銷推廣、網站策劃、App開發、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯