iT邦幫忙

0

Tensorflow 的Object Detection((在Training the Model訓練時出現問題))

  • 分享至 

  • xImage

使用Tensorflow 的新手,請問使用過Tensorflow 的專業人員是否能給予指導

<"
目前我已經依照以下網址
https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/tensorflow-1.14/training.html

依序執行步驟
在步驟Training the Model訓練模組 時
在CMD執行指令python model_main.py --alsologtostderr --model_dir=training/ --pipeline_config_path=training/RGB_faster_rcnn_nas.config

但是卻跳出以下問題

2023-03-22 10:06:23.920749: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
WARNING:tensorflow:
The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
  * https://github.com/tensorflow/addons
  * https://github.com/tensorflow/io (for I/O related ops)
If you depend on functionality not listed there, please file an issue.

WARNING:tensorflow:From D:\TensorFlow\models\research\slim\nets\inception_resnet_v2.py:373: The name tf.GraphKeys is deprecated. Please use tf.compat.v1.GraphKeys instead.

WARNING:tensorflow:From D:\TensorFlow\models\research\slim\nets\mobilenet\mobilenet.py:389: The name tf.nn.avg_pool is deprecated. Please use tf.nn.avg_pool2d instead.

Traceback (most recent call last):
  File "model_main.py", line 109, in <module>
    tf.app.run()
  File "D:\Python\Python36\lib\site-packages\tensorflow_core\python\platform\app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "D:\Python\Python36\lib\site-packages\absl\app.py", line 312, in run
    _run_main(main, args)
  File "D:\Python\Python36\lib\site-packages\absl\app.py", line 258, in _run_main
    sys.exit(main(argv))
  File "model_main.py", line 71, in main
    FLAGS.sample_1_of_n_eval_on_train_examples))
TypeError: create_estimator_and_inputs() missing 1 required positional argument: 'hparams'

如圖
https://ithelp.ithome.com.tw/upload/images/20230322/20158643I19RW5pXER.png

BeEvil_Y iT邦新手 4 級 ‧ 2023-03-23 09:28:40 檢舉
在後期,新手一開始接觸Tensorflow,會有版本的問題。
要有能力去看英文debug修改py檔,否則玩不起來。

像這次它就有說:
一:進inception_resnet_v2.py這個檔
tf.GraphKeys 要更換為 tf.compat.v1.GraphKeys
二:進mobilenet.py這個檔
tf.nn.avg_pool 要更換為 tf.nn.avg_pool2d

如果只是更換名稱,還好辦。
如果他發函式的引值也變動呢?

如果tf.GraphKeys(A,B)
變成 tf.compat.v1.GraphKeys(A,B,C,D)
多了C跟D,你又要怎麼辦呢??
你要為了C跟D,去Google一下,看他的引值是什麼意思嗎?
再跑去修改程式碼?

從這件事你就要知道,你安裝的版本太新,你參考資料是舊的。
過了幾年,寫法都已經變了。

Tensorflow,它很紅沒有錯,但很可惜,只紅在1.0
百分之90的人玩,也只玩到1.0,體驗一次就沒了。

就連台灣的北科大、中科大、臺科大,裡面有一些
「自以為很強的」領高薪的爛教授,教Tensorflow,也是教1.0
如果你對我說的有意見,你可以把這則留言列印下來,
貼在他們三所大學系辦前面。

讓他們系主任看看,有人在網路上都在說些什麼。

Tensorflow2.0之後,就萎縮了。
1.0的懶得回去重玩2.0,舊的程式碼也懶得更新。
Github上也因為這樣,一堆都是舊的寫法。

你找的到的教學,十則也有八則是舊的。

你要有「修改Python」的能力。
你得把所有的「每次運行」得到的debug建議,全數更換。
才可以正常跑。

你還得期望,它每次出錯,都知道錯在哪裡,然後秀debug給你看。
假若它有一天不顯示了。
你大概就完了。

你要嘛找別的範例來玩,要不然自已寫出來。

雖然很殘酷
我認為不會有人來回答你了。
因為有入過坑的人都知道,
你解決這次的Debug,「很快」還會有下一個Debug等著你。
你要全部修完,才可以跑。

如果你看不懂英文,我會建議你先學英文,不然就放棄。
Maggie iT邦新手 5 級 ‧ 2023-03-24 22:30:04 檢舉
好唷謝謝你,我在研究看看
增廣建文 iT邦研究生 5 級 ‧ 2023-03-24 23:47:04 檢舉
現在學TF真的沒必要碰1了
除非是想要跑古早code當論文baseline
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
增廣建文
iT邦研究生 5 級 ‧ 2023-03-24 23:50:18
  1. 確定安裝的tensorflow版本是不是1.14(我看你還在用python3.6所以猜應該沒用錯)
  2. 確定執行到現在沒有漏掉底下的任何一步
cd models/research
# Compile protos.
protoc object_detection/protos/*.proto --python_out=.
# Install TensorFlow Object Detection API.
cp object_detection/packages/tf1/setup.py .
python -m pip install --use-feature=2020-resolver .

# Test the installation
python object_detection/builders/model_builder_tf1_test.py

https://stackoverflow.com/questions/67111898/tensorflow-typeerror-create-estimator-and-inputs-missing-1-required-positio

我要發表回答

立即登入回答