我是 Julia 用户,刚接触 Flux 和机器学习。作为第一次测试并了解 Flux 的工作原理,我尝试使用 Flux 来估计一个简单的线性回归模型。但显然我做错了什么,因为使用火车训练模型!没有给出预期的 OLS 系数。这让我很惊讶;由于线性回归是一个简单的凸优化问题,我预计梯度下降会快速收敛到最优值。所以我想我对如何训练有一些误解!作品。
这是我的代码:
using Flux
using Flux: @epochs
using GLM
# Load data: The features of the Iris data set
features = Flux.Data.Iris.features();
x = features[1:3,:];
y = features[4,:];
J, N = size(x); # number of explanatory variables, number of observations
model = Chain(Dense(J,1)); # define the model
loss(x,y) = Flux.Losses.mse(model(x),y); # define the loss function
function loss_all(X,y) # and define a full-sample loss function
l = 0;
for i in …Run Code Online (Sandbox Code Playgroud) 我有三个关于指定函数参数和输出类型的相关问题。我正在定义一个希望多次调用的函数 f,因此我希望尽可能提高效率。我的函数定义如下所示:
function f(x, y)
...
return z
end
Run Code Online (Sandbox Code Playgroud)
我知道这x将是一个数组{Float64,1},y将是一个数组{Float64,2},z并将是一个 Float64。
我的问题是:
function f(x::Array{Float64}, y::Array{Float64})?x一维和二维来使类型更具体是否有任何额外的好处y,即function f(x::Array{Float64,1}, y::Array{Float64,2})?z,即function f(x::Array{Float64,1}, y::Array{Float64,2})::Float64?非常感谢!如果这些问题之前已经得到解决,我们深表歉意。