Как исправить TypeError: Несовместимые типы: <dtype: 'resource'> против int64. Значение 0 - PullRequest
1 голос
/ 07 апреля 2019

Я использую:

  • Python 3.6.8
  • Tensorflow 1.13.1

Я тренирую пользовательский tf.Estimator и получаюследующая ошибка при вычислении градиентов:

  File "/home/me/model.py", line 92, in model_fn
    train_op = optimizer.minimize(loss, global_step=tf.train.get_global_step())
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 400, in minimize
    grad_loss=grad_loss)
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 519, in compute_gradients
    colocate_gradients_with_ops=colocate_gradients_with_ops)
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 630, in gradients
    gate_gradients, aggregation_method, stop_gradients)
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 803, in _GradientsHelper
    out_grads[i] = loop_state.ZerosLike(op, i)
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1348, in ZerosLike
    result = constant_op.constant(0, shape=shape.dims, dtype=val.dtype)
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py", line 208, in constant
    value, dtype=dtype, shape=shape, verify_shape=verify_shape))
  File "/home/me/miniconda3/envs/echo/lib/python3.6/site-packages/tensorflow/python/framework/tensor_util.py", line 477, in make_tensor_proto
    (dtype, nparray.dtype, values))
TypeError: Incompatible types: <dtype: 'resource'> vs. int64. Value is 0

Потеря - это просто среднеквадратичная потеря между метками и прогнозами, как показано ниже:

loss = tf.losses.mean_squared_error(labels, predictions)

Как решитьпроблема?Откуда берется несовместимость?

...