我对tensorflow相当陌生,我看过一些教程,但我不知道tf.gradients()是如何工作的。如果我给它两个二维矩阵的输入,它将如何计算偏导数?我真的很困惑,请帮助我,如果你可以,这将是一个很大的帮助。
import tensorflow as tf
import numpy as np
X = np.random.rand(3,3)
y = np.random.rand(2,2)
grad = tf.gradients(X,y)
with tf.Session() as sess:
sess.run(grad)
print(grad)
这就产生了一个错误:
回溯
我刚刚在Python3.7.2 (macOS)上安装了torch-1.0.0,并尝试了,但代码如下:
import torch
x = torch.ones(2, 2, requires_grad=True)
y = x + 2
z = y * y * 3
out = z.mean()
out.backward()
print(out.grad)
打印None,这不是预期的。
有什么问题吗?
即使是非常简单的例子,如果backward()不能工作,请查看下面的错误。
这个错误是预期的,还是我以错误的方式使用gather?
In [1]: import torch as th
In [2]: x = th.rand((3,3), requires_grad=True)
# sparse_grad = False, the backward could work as expetecd
In [3]: th.gather(x @ x, 1, th.LongTensor([[0], [1]]), sparse_grad=False).sum().backward()
# spars
根据这个文档,说
Defined in tensorflow/python/ops/gen_nn_ops.py.
但是,当我转到tensorflow/python/ops/gen_nn_ops.py时,没有定义l2_loss。
我想看看使用tf.nn.l2_loss(W)和仅仅使用tf.reduce_sum(tf.square(W))之间有什么区别。
我正在尝试使用TensorFlow的@tf.custom_gradient功能为具有多个输入的函数指定自定义渐变。我可以只为一个输入设置工作,但不能为两个或更多输入设置。 我的代码基于TensorFlow's custom_gradient documentation,它对于一个输入来说工作得很好,如下例所示: import tensorflow as tf
import os
# Suppress Tensorflow startup info
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
# Custom gra
我刚开始学习tensorflow,在使用tf.gradients和tf.hessain函数时遇到了以下错误。下面给出了tf.gradients的代码和错误。
import tensorflow as tf
a = tf.placeholder(tf.float32,shape = (2,2))
b = [[1.0,2.0],[3.0,4.0]]
c = a[0,0]*a[0,1]*a[1,0] + a[0,1]*a[1,0]*a[1,1]
e = tf.reshape(b,[4])
d = tf.gradients(c,e)
sess = tf.Session()
print(sess.run
请考虑以下代码:
import torch
from torch import nn
a = torch.tensor([1.], requires_grad=True)
b = nn.Tanh()(a)
# b = nn.Linear(1,1)(a)
b *= 1
# b = b * 1
b.sum().backward()
在RuntimeError中运行代码将得到以下结果:
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation
我正在尝试实现线性回归的梯度下降算法。我想我理解了数学部分,但它在Python中不起作用。
from sklearn.datasets import load_boston
import pandas as pd
import numpy as np
import random
data = load_boston()
df = pd.DataFrame(data['data'], columns=data['feature_names'])
y = data['target']
X = df.TAX
def RMSE(y, y_hat):
有人能解释一下为什么tensorflow在运行以下代码时会给我带来麻烦吗?
import tensorflow as tf
x = tf.keras.layers.Input(shape=(1,))
y = tf.keras.layers.Dense(1, activation=tf.nn.relu)(x)
loss = tf.losses.mean_squared_error(x,y)
grad = tf.gradients(loss, tf.trainable_variables())
# !!! GIVES ME TROUBLE !!!
clipped_grad = tf.clip