TensorFlow學習筆記6——《面向機器智慧的TensorFlow實踐》StanfordDog例程修改記錄
阿新 • • 發佈:2019-01-31
《面向機器智慧的TensorFlow實踐》深入淺出,將tensorflow的很多概念講的很清楚,很適合tensorflow的初學者學習。該書完整的程式碼在https://github.com/backstopmedia/tensorflowbook點選開啟連結可以下載到。這本書最大的缺陷是其中的例子是基於tensorflow
0.8版本的,現在tensorflow已經到1.0版本,有些函式已經更新,在跑其中的例程時,需要修改。1.0版本的主要更新網上隨便就能找到。
除了tensorflow的版本問題之外,程式碼中還有一些小bug,或者因為讀者python編譯器的配置問題,導致例程無法跑通。本文是我除錯該書第5.5節 StanforDog例程記錄的問題。
1、控制檯提示錯誤'utf-8' codec can't encode character '\udcd5' inposition 2575: surrogates not allowed
逐個函式遮蔽,然後逐條語句遮蔽(原諒我對python 不熟,只能這樣找到問題),發現是執行def write_records_file(dataset, record_location)函式時的下述語句報錯。可以看出是寫tfrecord時的路徑問題。 呼叫該函式的程式碼為:record_filename = "{record_location}-{current_index}.tfrecords".format( record_location=record_location, current_index=current_index)
write_records_file(testing_dataset, "./output/testing-images/testing-image")
write_records_file(training_dataset, "./output/training-images/training-image")
正確做法是,先在.py指令碼的目錄下,建立/output/testing-images/testing-image和/output/training-images/training-image這兩個目錄(即資料夾),這樣便可正確執行。2、size
write_records_file(dataset, record_location)函式中的resized_image = tf.image.resize_images(grayscale_image, 250, 151)
修改為:
resized_image = tf.image.resize_images(grayscale_image, [250, 151])