您的位置:首页 > 教育 > 培训 > 建站服务搭建的页面时_武汉市新闻头条_海南seo代理加盟供应商_智能建站

建站服务搭建的页面时_武汉市新闻头条_海南seo代理加盟供应商_智能建站

2024/10/6 6:52:43 来源:https://blog.csdn.net/sakura_sea/article/details/142407669  浏览:    关键词:建站服务搭建的页面时_武汉市新闻头条_海南seo代理加盟供应商_智能建站
建站服务搭建的页面时_武汉市新闻头条_海南seo代理加盟供应商_智能建站

文章目录

  • flux
    • 概述
    • 异或
  • 参考文献

flux

概述

Flux是一个用于机器学习的库。它“内置电池”,即包含了许多有用的工具,但同时也允许你在需要时充分利用Julia语言的强大功能。我们遵循以下几个关键原则:

  1. 做显而易见的事情。Flux的明确API相对较少。相反,只需写下数学形式,它就能工作——而且速度很快。
  2. 默认可扩展。Flux在保持高性能的同时,也被设计成高度灵活的。扩展Flux就像使用你自己的代码作为你想要模型的一部分一样简单——它全是高级Julia代码。
  3. 与其他库和谐共处。Flux与从图像处理到微分方程求解器等无关的Julia库都能很好地协同工作,而不是重复它们的功能。

异或

# This will prompt if neccessary to install everything, including CUDA:
using Flux,Cuda,Statistics, ProgressMeter# Generate some data for the XOR problem: vectors of length 2, as columns of a matrix:
noisy = rand(Float32, 2, 1000)                                    # 2×1000 Matrix{Float32}
truth = [xor(col[1]>0.5, col[2]>0.5) for col in eachcol(noisy)]   # 1000-element Vector{Bool}# Define our model, a multi-layer perceptron with one hidden layer of size 3:
model = Chain(Dense(2 => 3, tanh),   # activation function inside layerBatchNorm(3),Dense(3 => 2)) |> gpu        # move model to GPU, if available# The model encapsulates parameters, randomly initialised. Its initial output is:
out1 = model(noisy |> gpu) |> cpu                                 # 2×1000 Matrix{Float32}
probs1 = softmax(out1)      # normalise to get probabilities# To train the model, we use batches of 64 samples, and one-hot encoding:
target = Flux.onehotbatch(truth, [true, false])                   # 2×1000 OneHotMatrix
loader = Flux.DataLoader((noisy, target) |> gpu, batchsize=64, shuffle=true);
# 16-element DataLoader with first element: (2×64 Matrix{Float32}, 2×64 OneHotMatrix)optim = Flux.setup(Flux.Adam(0.01), model)  # will store optimiser momentum, etc.# Training loop, using the whole data set 1000 times:
losses = []
@showprogress for epoch in 1:1_000for (x, y) in loaderloss, grads = Flux.withgradient(model) do m# Evaluate model and loss inside gradient context:y_hat = m(x)Flux.logitcrossentropy(y_hat, y)endFlux.update!(optim, model, grads[1])push!(losses, loss)  # logging, outside gradient contextend
endoptim # parameters, momenta and output have all changed
out2 = model(noisy |> gpu) |> cpu  # first row is prob. of true, second row p(false)
probs2 = softmax(out2)      # normalise to get probabilities
mean((probs2[1,:] .> 0.5) .== truth)  # accuracy 94% so far!

参考文献

  1. https://fluxml.ai/
  2. 文心一言

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com