测试通过,开始训练
运行:
python object_detection/model_main.py --logtostderr --train_dir=‘**’ --pipeline_config_path='**/**.config'
报错Windows fatal exception: access violation
改为python object_detection/model_main.py --logtostderr --train_dir=** --pipeline_config_path=**/**.config
仍然报错:Windows fatal exception: access violation
将预训练模型拷入相应目录后,终于开始了。
但提示:NotImplementedError: Cannot convert a symbolic Tensor (lstm_2/strided_slice:0) to a numpy array.
查资料,此错误主要原因可能为numpy版本过高,numpy.__version__为1.21.0,降为1.19.0,又出现新的错误。
2021-09-04 08:45:09.525264: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
Traceback (most recent call last):
File "object_detection/model_main.py", line 25, in <module>
from object_detection import model_lib
File "d:\models-master\research\object_detection\model_lib.py", line 29, in <module>
from object_detection import eval_util
File "d:\models-master\research\object_detection\eval_util.py", line 35, in <module>
from object_detection.metrics import coco_evaluation
File "d:\models-master\research\object_detection\metrics\coco_evaluation.py", line 25, in <module>
from object_detection.metrics import coco_tools
File "d:\models-master\research\object_detection\metrics\coco_tools.py", line 51, in <module>
from pycocotools import coco
File "d:\miniconda3\lib\site-packages\pycocotools-2.0.2-py3.7-win-amd64.egg\pycocotools\coco.py", line 55, in <module>
from . import mask as maskUtils
File "d:\miniconda3\lib\site-packages\pycocotools-2.0.2-py3.7-win-amd64.egg\pycocotools\mask.py", line 3, in <module>
import pycocotools._mask as _mask
File "pycocotools\_mask.pyx", line 1, in init pycocotools._mask
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
此错误又示为numpy版本过低,要升级版本,仍升级为1.21.0
d:\models-master\research\object_detection\data_decoders\tf_example_decoder.py:532 default_groundtruth_weights *
return tf.ones(
d:\miniconda3\lib\site-packages\tensorflow_core\python\util\deprecation.py:507 new_func
return func(*args, **kwargs)
d:\miniconda3\lib\site-packages\tensorflow_core\python\ops\array_ops.py:2560 ones
output = _constant_if_small(one, shape, dtype, name)
d:\miniconda3\lib\site-packages\tensorflow_core\python\ops\array_ops.py:2295 _constant_if_small
if np.prod(shape) < 1000:
<__array_function__ internals>:6 prod
d:\miniconda3\lib\site-packages\numpy\core\fromnumeric.py:3052 prod
keepdims=keepdims, initial=initial, where=where)
d:\miniconda3\lib\site-packages\numpy\core\fromnumeric.py:86 _wrapreduction
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
d:\miniconda3\lib\site-packages\tensorflow_core\python\framework\ops.py:736 __array__
" array.".format(self.name))
NotImplementedError: Cannot convert a symbolic Tensor (cond_2/strided_slice:0) to a numpy array.
stackoverflow提示因为win7的原因ops.py 文件需修改
def __array__(self):
raise NotImplementedError(
为
def __array__(self):
raise TypeError(
查看本次训练,也正是ops.py文件出现此错误。
修改后,终于tf1.15-cpu的目标检测训练模型开始跑起来了。
虽说设置了model_dir,不知为何训练结果要保存在
C:\Users\**\AppData\Local\Temp\tm********
文件夹。