gpt4 book ai didi

warnings - 为什么我会在这里收到自动广播警告?

转载 作者:行者123 更新时间:2023-12-04 23:02:36 25 4
gpt4 key购买 nike

function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)
m = length(y);
J_history = zeros(num_iters, 1);

for iter = 1:num_iters
## warning: product: automatic broadcasting operation applied
theta = theta - sum(X .* (X * theta - y))' .* (alpha / (m .* 2));
J_history(iter) = computeCost(X, y, theta);
end
end

这是我的作业,但我不要求你为我做(我实际上认为我已经完成或接近完成)。我已经在手册中提到了广播,但我仍然不明白,为什么我会在这里收到警告?

最佳答案

问题是 size(theta')1 2size(X)m 2.

当您将它们相乘时,Octave 首先将 X(1,1) 乘以 theta'(1,1)X(1,2) 通过 theta'(1,2)。然后它移动到 X 的第二行并尝试将 X(2,1) 乘以 theta'(2,1)。但是 theta' 没有第二行,所以这个操作没有意义。

Octave 不只是崩溃,而是猜测您打算扩展 theta' 以便在开始乘法之前它具有与 X 一样多的行。然而,因为它在猜测某些东西,它觉得它应该警告你它在做什么。

在开始与 repmat function 相乘之前,您可以通过显式延长 theta 的长度来避免警告。 .

repmat(theta',m,1) .* X

关于warnings - 为什么我会在这里收到自动广播警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19570642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com