Python 估计器API:AttributeError:&x27;非类型';对象没有属性';数据类型';

Python 估计器API:AttributeError:&x27;非类型';对象没有属性';数据类型';,python,tensorflow,deep-learning,conv-neural-network,yolo,Python,Tensorflow,Deep Learning,Conv Neural Network,Yolo,我已经查阅了以前关于这个问题的答案,但还没有解决。我从无到有地实现了一个YOLO算法(用于目标检测),在训练部分遇到了问题 对于培训,我是tf.estimator API,使用的代码类似于tensorflow中的CNN MNIST代码。我得到以下错误: Traceback (most recent call last): File "recover_v3.py", line 663, in <module> model.train(input_fn=train_input

我已经查阅了以前关于这个问题的答案,但还没有解决。我从无到有地实现了一个YOLO算法(用于目标检测),在训练部分遇到了问题

对于培训,我是tf.estimator API,使用的代码类似于tensorflow中的CNN MNIST代码。我得到以下错误:

Traceback (most recent call last):
  File "recover_v3.py", line 663, in <module>
    model.train(input_fn=train_input_fn, steps=1)
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 376, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 1145, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 1170, in _train_model_default
    features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 1133, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "recover_v3.py", line 584, in cnn_model_fn
    loss=loss, global_step=tf.train.get_global_step())
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 400, in minimize
    grad_loss=grad_loss)
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 494, in compute_gradients
    self._assert_valid_dtypes([loss])
  File "/home/nyu-mmvc-019/miniconda3/envs/tf_0/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 872, in _assert_valid_dtypes
    dtype = t.dtype.base_dtype
AttributeError: 'NoneType' object has no attribute 'dtype'
之前类似的问题表明损失函数不返回任何内容。然而,当我用随机生成的数组尝试损失函数时,它工作得很好,并产生正常值

同样,如果我从损失函数返回一个常数,比如10.0,我仍然会得到相同的错误

我不知道现在该怎么办。还有,我是否可以打印loss函数返回的loss。显然,tf.estimator API自己启动一个tensorflow会话,如果我尝试创建另一个会话(为了打印loss函数返回的值),我会得到其他错误

然而,当我用随机生成的数组尝试损失函数时,它工作得很好,并产生正常值

您的输入似乎有问题。您确定它已正确实施吗

还有,我是否可以打印loss函数返回的loss

Estimator在控制台中自动打印损失函数的值,每个全局步骤%“保存摘要步骤”。您还可以使用标量摘要跟踪损失函数,如下所示:

tf.summary.scalar('loss', loss)
tf.summary.scalar('loss', loss)