Я использую:
- 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)
Как решитьпроблема?Откуда берется несовместимость?