- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
给定一个 TensorFlow tf.while_loop
,我如何计算每个时间步的 x_out
相对于网络所有权重的梯度?
network_input = tf.placeholder(tf.float32, [None])
steps = tf.constant(0.0)
weight_0 = tf.Variable(1.0)
layer_1 = network_input * weight_0
def condition(steps, x):
return steps <= 5
def loop(steps, x_in):
weight_1 = tf.Variable(1.0)
x_out = x_in * weight_1
steps += 1
return [steps, x_out]
_, x_final = tf.while_loop(
condition,
loop,
[steps, layer_1]
)
一些笔记
tf.gradients(x, tf.trainable_variables())
崩溃并出现 AttributeError: 'WhileContext' object has no attribute 'pred'
。似乎在循环中使用 tf.gradients
的唯一可能性是计算关于 weight_1
的梯度和 x_in
的当前值/仅时间步长,不通过时间反向传播。
câu trả lời hay nhất
在基于cái này 的 Tensorflow 中,您永远不能在 tf.while_loop
中调用 tf.gradients
Và cái này ,当我尝试将共轭梯度下降完全创建到 Tensorflow
图中时,我发现了这一点。
但是如果我正确理解你的模型,你可以制作你自己的 RNNCell
版本并将其包装在 tf.dynamic_rnn
中,但实际的单元格 实现会有点复杂,因为您需要在运行时动态评估条件。
初学者可以看看Tensorflow的dynamic_rnn
mã sốđây .
或者,动态图从来都不是 Tensorflow
的强项,因此请考虑使用其他框架,例如 PyTorch
或者您可以试用 eager_execution
看看是否有帮助。
关于python - 为 tf.while_loop 的每个时间步计算梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49555016/
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!