[英]Error in fitting a keras model using tfprobability
I'm trying to reproduce the code of this project: https://github.com/casact/rp-bnn-claims我正在尝试重现该项目的代码: https://github.com/casact/rp-bnn-claims
I'm having a weird error when I've tried to run this lines:当我尝试运行这些行时,我遇到了一个奇怪的错误:
batch_size <- 100000
model <- make_model(n_rows = dim(train_data_keras$x[[1]])[[1]],
ln_scale_bound = 0.7,
scale_c = 0.01)
model %>%
compile(
loss = list(cust_loss, cust_loss),
loss_weights = list(1, 1),
optimizer = optimizer_sgd(lr = 0.01, clipnorm = 1)
)
history <- model %>%
fit(
x = train_data_keras$x,
y = unname(train_data_keras$y),
validation_data = list(validation_data_keras$x, unname(validation_data_keras$y)),
batch_size = batch_size,
epochs = 100,
view_metrics = FALSE,
verbose = 1,
callbacks = list(callback_early_stopping(monitor = "val_loss",
patience = 10,
min_delta = 0.001,
restore_best_weights = FALSE),
callback_reduce_lr_on_plateau(factor = 0.5, patience = 5)
)
)
The error:错误:
Error in py_call_impl(callable, dots$args, dots$keywords): RuntimeError: in user code:
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/keras/engine/training.py", line 878, in train_function *
return step_function(self, iterator)
File "/usr/local/lib/R/site-library/reticulate/python/rpytools/call.py", line 21, in python_function *
raise RuntimeError(res[kErrorKey])
RuntimeError: Evaluation error: TypeError: bad operand type for unary -: 'NoneType'
Detailed traceback:
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/distribution.py", line 1316, in log_prob
return self._call_log_prob(value, name, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/distribution.py", line 1298, in _call_log_prob
return self._log_prob(value, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/mixture.py", line 279, in _log_prob
distribution_log_probs = [d.log_prob(x) for d in self.components]
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/mixture.py", line 279, in <listcomp>
distribution_log_probs = [d.log_prob(x) for d in self.components]
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/distribution.py", line 1316, in log_prob
return self._call_log_prob(value, name, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/distribution.py", line 1298, in _call_log_prob
return self._log_prob(value, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/distributions/transformed_distribution.py", line 367, in _log_prob
ildj = self.bijector.inverse_log_det_jacobian(
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1561, in inverse_log_det_jacobian
return self._call_inverse_log_det_jacobian(y, event_ndims, name, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/bijectors/composition.py", line 539, in _call_inverse_log_det_jacobian
return self._inverse_log_det_jacobian(y, event_ndims, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/bijectors/composition.py", line 552, in _inverse_log_det_jacobian
bm.bijector.inverse_log_det_jacobian(bm.x, bm.x_event_ndims,
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1561, in inverse_log_det_jacobian
return self._call_inverse_log_det_jacobian(y, event_ndims, name, **kwargs)
File "/miniconda/envs/r-reticulate/lib/python3.8/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1492, in _call_inverse_log_det_jacobian
ildj = attrs['ildj'] = -self._forward_log_det_jacobian(x, **kwargs)
I suspect that it's related to tensorflow probability package, I'm new in tensorflow and I'll be grateful if you could help me!我怀疑它与 tensorflow 概率 package 有关,我是 tensorflow 的新手,如果你能帮助我,我将不胜感激! Thank you,
谢谢,
Update:更新:
I tfb_affine_scalar
as it became obsolete due to new version of tensorflow probability: I used tfb_shift()(tfb_scale())
由于新版本的 tensorflow 概率,我使用
tfb_affine_scalar
已过时:我使用tfb_shift()(tfb_scale())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.