Python 在tensorflow对象检测API中,有没有办法知道对象检测模型有多少个参数?
我用tensor object detection(TFOD)API训练不同的模型,我想知道为给定的模型训练了多少个参数 我运行更快的RCNN,SSD,RFCN和不同的图像分辨率,我想知道有多少个参数是训练。有办法吗 我尝试了在这里找到的答案,但运气不好 这是我在Python 在tensorflow对象检测API中,有没有办法知道对象检测模型有多少个参数?,python,tensorflow,object-detection-api,Python,Tensorflow,Object Detection Api,我用tensor object detection(TFOD)API训练不同的模型,我想知道为给定的模型训练了多少个参数 我运行更快的RCNN,SSD,RFCN和不同的图像分辨率,我想知道有多少个参数是训练。有办法吗 我尝试了在这里找到的答案,但运气不好 这是我在model_main.py的第103行添加的代码: print("Training {} parameters".format(np.sum([np.prod(v.get_shape().as_list()) for v in tf.t
model_main.py
的第103行添加的代码:
print("Training {} parameters".format(np.sum([np.prod(v.get_shape().as_list()) for v in tf.trainable_variables()]))
我认为问题在于我没有访问TFOD正在运行的tf.Session(),因此我的代码总是返回0.0个参数(尽管训练很好,而且训练了数百万个参数),我不知道如何解决这个问题。TFOD API使用
tf.estimator.estimator
来训练和评估。Estimator
对象提供了获取所有变量的函数,Estimator.get_variable_names()
()
您可以将这一行print(estimator.get_variable_names())
添加到estimator.train_and_evaluate()之后
培训完成后,您将看到打印的所有变量名。要更快地查看结果,您可以只进行一步训练。使用export\u expression\u graph.py时,脚本还会分析您的模型,并统计参数和失败次数(如果可能)。
如果看起来像这样:
_TFProfRoot (--/# total params)
FeatureExtractor (--/# params)
...
WeightSharedConvolutionalBoxPredictor (--/# params)
...
你说训练多少个参数是什么意思?你是说你的模型中有多少个参数?@BlueRineS是的,我需要知道模型中有多少个参数。这就是你想要的答案吗?还是我答错了?