- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在创建一个 tf.Variable()
,然后使用该变量创建一个简单的函数,然后我使用 tf.reshape()
展平原始变量,然后我在函数和展平变量之间使用了 tf.gradients()
。为什么会返回 [None]
。
var = tf.Variable(np.ones((5,5)), dtype = tf.float32)
f = tf.reduce_sum(tf.reduce_sum(tf.square(var)))
var_f = tf.reshape(var, [-1])
print tf.gradients(f,var_f)
上面的代码块在执行时返回[None]
。这是一个错误吗?请帮忙!
câu trả lời hay nhất
您正在寻找关于 var_f
của nếu
的导数,但是 nếu
KHÔNG var_f
的函数而不是 của chúng tôi
。这就是为什么你得到[无]。现在,如果您将代码更改为:
var = tf.Variable(np.ones((5,5)), dtype = tf.float32)
var_f = tf.reshape(var, [-1])
f = tf.reduce_sum(tf.reduce_sum(tf.square(var_f)))
grad = tf.gradients(f,var_f)
print(grad)
您的渐变将被定义:
tf.Tensor 'gradients_28/Square_32_grad/mul_1:0' shape=(25,) dtype=float32>
以下代码的图形可视化如下:
var = tf.Variable(np.ones((5,5)), dtype = tf.float32, name='var')
f = tf.reduce_sum(tf.reduce_sum(tf.square(var)), name='f')
var_f = tf.reshape(var, [-1], name='var_f')
grad_1 = tf.gradients(f,var_f, name='grad_1')
grad_2 = tf.gradients(f,var, name='grad_2')
grad_1
的导数未定义,而 grad_2
的导数已定义。显示了两个梯度的反向传播图(梯度图)。
关于python - 为什么 Tensorflow Reshape tf.reshape() 会破坏梯度流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836859/
Tôi đang cố gắng điều chỉnh mã hướng dẫn tf DeepDream để sử dụng mô hình khác. Bây giờ khi tôi gọi tf.gradients(): t_grad = tf.gradients(t_score, t_input)[0
Xem xét một vấn đề giảm độ dốc theo lô nhỏ đơn giản trên mnist trong tensorflow (như trong hướng dẫn này), làm cách nào tôi có thể truy xuất độ dốc của từng ví dụ trong lô riêng lẻ. tf.gradients() dường như trả về tất cả
Khi tôi tính toán độ dốc của mảng bị che trong numpy import numpy as np import numpy.ma as ma x = np.array([100, 2, 3, 5, 5, 5, 10,
Có cách nào nhanh chóng để lấy đạo hàm của ma trận hiệp phương sai (kích hoạt mạng của tôi) ngoài các phép tính số không? Tôi đang cố gắng sử dụng điều này như một thuật ngữ phạt trong hàm chi phí trong mạng lưới thần kinh sâu, nhưng để truyền ngược lỗi qua các lớp của mình, tôi cần lấy đạo hàm. Trong Matlab, nếu "a
Tôi có một hàm tính toán các giá trị trường vô hướng trong không gian 3D, vì vậy tôi cung cấp cho nó một tenxơ 3D gồm các tọa độ x, y và z (thu được bởi numpy.meshgrid) và sử dụng các phép toán theo phần tử ở mọi nơi. Điều này hoạt động như mong đợi. Bây giờ tôi cần tính độ dốc của trường vô hướng.
Tôi đang sử dụng Ước tính mật độ hạt nhân (KDE) ( http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.htm
Tôi bối rối trước các ví dụ trong tài liệu độ dốc tensorflow để tính toán độ dốc. a = tf.constant(0.) b = 2 * ag = tf.gradients(
Tôi có một lớp softmax (chỉ là lớp kích hoạt, không có phần tuyến tính nhân đầu vào với trọng số) mà tôi muốn thực hiện chuyển ngược lại. Tôi đã tìm thấy rất nhiều hướng dẫn/câu trả lời về SO giải quyết vấn đề đó, nhưng dường như tất cả chúng đều sử dụng X làm (1, n_inputs)
Cho bạn biết, tôi đang cố gắng triển khai thuật toán giảm độ dốc bằng Tensorflow. Tôi có ma trận X [x1 x2 x3 x4] [x5 x6 x7 x8] Tôi nhân một số vectơ riêng Y để có Z[y
Tôi hiện có một khối lượng bao gồm vài triệu hạt phân bố không đều, mỗi hạt có một tính chất (tiềm năng cho những ai tò mò) mà tôi muốn tính lực cục bộ (gia tốc). np.gradient chỉ hoạt động với dữ liệu cách đều nhau, mình đang xem ở đây :S
Tôi đang tìm kiếm gợi ý về cách triển khai Độ dốc (dốc nhất) trong C. Tôi đang tìm giá trị tối thiểu của f(x)=||Ax-y||^2, cho A(n,n) và y(n). Đây là
Tôi đang xem mã cho tổn thất SVM và đạo hàm và tôi hiểu sự mất mát nhưng tôi không hiểu cách tính độ dốc theo cách được vector hóa def svm_loss_vectorized(W, X, y, reg): loss = 0,0 dW
Tôi đang tìm một cách hiệu quả để tính đạo hàm của mảng đa chiều ở Julia. Nói chính xác hơn, tôi muốn một cái tương đương với numpy.gradient ở Julia. Tuy nhiên, hàm Julia diff : chỉ hoạt động với mảng hai chiều dọc theo chiều vi phân
Tôi có hai điểm trong hệ thống cathesian 2D và cả hai đều cho tôi điểm bắt đầu và điểm kết thúc của vectơ. Bây giờ tôi cần góc giữa vectơ mới và trục x. Tôi biết gradient = (y2-y1)/(x2-x1) và tôi biết góc = arctan(g
Tôi có một mảng 2D gồm các mẫu hình sin và muốn vẽ đồ thị độ dốc x và y của hàm đó. Tôi có một mảng hai chiều image_data: def get_image(params): # thực hiện một số phép toán trên
Giả sử tôi có một mô hình TensorFlow đơn giản trên dữ liệu MNIST như sau import tensorflow as tf from tensorflow.examples.tutorials.m
Tôi muốn xem độ dốc của LSTM Tensorflow của mình theo thời gian, ví dụ: vẽ biểu đồ định mức độ dốc từ t=N đến t=0. Câu hỏi đặt ra là làm cách nào để có được độ dốc ở mỗi bước thời gian từ Tensorflow? Câu trả lời tốt nhất được xác định trong sơ đồ:
Tôi có một mạng lưới thần kinh đơn giản và tôi đang cố gắng vẽ đồ thị độ dốc bằng cách sử dụng tensorboard bằng cách sử dụng lệnh gọi lại như thế này: class gradientCallback(tf.keras.callbacks.Callback): console =
Trong hướng dẫn CIFAR-10, tôi nhận thấy rằng các biến được đặt trong bộ nhớ CPU, nhưng nó được nêu trong cifar10-train.py. Nó được đào tạo bằng cách sử dụng một GPU duy nhất. Tôi đang bối rối..các lớp/kích hoạt có được lưu trữ trong GPU không? Hoặc độ dốc
Tôi có một mô hình tensorflow trong đó đầu ra của một lớp là một tensor 2D, giả sử t = [[1,2], [3,4]] . Lớp tiếp theo yêu cầu đầu vào bao gồm mỗi tổ hợp hàng của tensor đó. Tức là mình cần biến nó thành t_new = [[
Tôi là một lập trình viên xuất sắc, rất giỏi!