基于Nx构建的传统机器学习工具。Scholar实现了多种算法,用于分类、回归、聚类、降维、度量和预处理。
对于深度学习,请参见Axon。 对于决策树/森林,请参见EXGBoost。
安装
Mix项目
在您的mix.exs
中添加:
def deps do
[
{:scholar, "~> 0.3.0"}
]
end
除了Scholar,您很可能还需要使用现有的Nx编译器/后端,比如EXLA:
def deps do
[
{:scholar, "~> 0.3.0"},
{:exla, ">= 0.0.0"}
]
end
然后在您的config/config.exs
文件中:
import Config
config :nx, :default_backend, EXLA.Backend
# 客户端也可以设置为:cuda / :rocm
config :nx, :default_defn_options, [compiler: EXLA, client: :host]
需要JIT!{: .warning}
重要的是,您需要按照上面的代码片段设置
default_defn_options
,因为Scholar中的许多算法使用循环, 在JIT编译时内存效率更高。如果由于某些原因您不能设置默认的
defn
编译器,您可以显式地对任何函数进行JIT编译, 例如:EXLA.jit(&Scholar.Cluster.AffinityPropagation.fit/1)
。
笔记本
要在代码笔记本中使用Scholar,请运行:
Mix.install([
{:scholar, "~> 0.3.0"},
{:exla, ">= 0.0.0"}
])
Nx.global_default_backend(EXLA.Backend)
# 客户端也可以设置为:cuda / :rocm
Nx.Defn.global_default_options(compiler: EXLA, client: :host)
需要JIT!{: .warning}
重要的是,您需要按照上面的代码片段设置
Nx.Defn.global_default_options/1
,因为Scholar中的许多算法使用循环, 在JIT编译时内存效率更高。如果由于某些原因您不能设置默认的
defn
编译器,您可以显式地对任何函数进行JIT编译, 例如:EXLA.jit(&Scholar.Cluster.AffinityPropagation.fit/1)
。
许可证
版权所有 (c) 2022 Erlang生态系统基金会机器学习工作组
根据Apache许可证2.0版("许可证")获得许可; 除非符合许可证,否则您不得使用此文件。 您可以在http://www.apache.org/licenses/LICENSE-2.0获取许可证副本
除非适用法律要求或书面同意,否则根据许可证分发的软件是基于"按原样"的基础分发的, 不附带任何明示或暗示的保证或条件。 有关许可证下的特定语言管理权限和限制,请参阅许可证。