tf.gradients(xs[:, j], Ys) 结果为None
时间: 2024-03-09 16:49:51 浏览: 29
如果`tf.gradients(xs[:, j], Ys)`返回`None`,则可能是因为计算图中缺少必要的依赖项。您可以尝试通过调用`tf.debugging.check_numerics`函数来排除梯度计算的问题。
例如,您可以在计算梯度之前添加以下代码:
```python
import tensorflow as tf
# ...
with tf.Session() as sess:
# Add this line to check for NaNs and Infs
tf.debugging.check_numerics(xs, 'xs contains NaNs or Infs')
tf.debugging.check_numerics(Ys, 'Ys contains NaNs or Infs')
gradients = []
for j in range(n):
# Add this line to check for NaNs and Infs
tf.debugging.check_numerics(xs[:, j], f'xs[:, {j}] contains NaNs or Infs')
grad = tf.gradients(xs[:, j], Ys)[0]
gradients.append(grad)
jacobianmatrix1 = tf.stack(gradients, axis=1)
# ...
```
这将确保xs和Ys张量中不存在NaN或Inf值。如果存在这些值,则`tf.debugging.check_numerics`函数将引发异常并停止计算。如果没有异常,则可能是计算图中缺少必要的依赖项,您可以尝试添加更多的依赖项或使用`tf.control_dependencies`函数来控制计算图的顺序。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)