随机器学习兴起的Julia编程语言
Julia这个编程语言即有Python的开发效率,也有C的执行效率,是为数值运算设计的编程语言。Julia可以直接调用C,很多开源的C和Fortran库都集成到了Julia基础库。另外,它也有notebook。
Julia试图取代R, MATLAB, Octave等数值计算工具。其语法与其他科学计算语言相似。在许多情况下拥有能与编译型语言相媲美的性能。Julia的设计遵从三个原则,快、表达式丰富、动态语言。Julia的核心使用C语言编写,其他部分使用Julia本身编写。
目前这门编程语言在国内知名度不高,如果你在百度搜索Julia,第一页没有一个和Julia语言相关的条目,相反出现的是一个日本av star,这。。。
目前在机器学习领域最流行的编程语言还是Python,看一张图:
一个编程语言的兴衰和背后的社区有直接关系。如果一个编程语言社区强大,那么资源就多,各种库也多,那么用的人就多。Julia的社区貌似都是搞数值运算的,它的应用目前也只限制在这了,如果拿这个语言做Web(有一个库),那不累死。
本帖使用Julia演示一个手写数字识别,看看它的语法是否能和你对上眼。
Julia的几个机器学习库
- ScikitLearn.jl:类似Python的scikit-learn
- Mocha.jl
- TextAnalysis.jl
- MXNet.jl
- TensorFlow.jl:封装TensorFLow
安装Julia
- julia源代码:https://github.com/JuliaLang/julia
- http://julialang.org/downloads/
- # Ubuntu
- $ sudo apt install gfortran
- $ sudo apt install julia
- # macOS
- $ brew install Caskroom/cask/julia
- 文档:http://docs.julialang.org/en/stable/manual/
[plain] view plain copy
- julia> Pkg.test("Mocha")
手写数字识别
安装Mocha.jl:
- julia> Pkg.add("Mocha")
- # 或安装最新版 Pkg.clone("https://github.com/pluskid/Mocha.jl.git")
测试安装:
- julia> Pkg.test("Mocha")
准备手写数字数据集:https://github.com/pluskid/Mocha.jl/tree/master/examples/mnist
代码:
- # https://github.com/pluskid/Mocha.jl/blob/master/examples/mnist/mnist.jl
- using Mocha
- srand(12345678)
- data_layer = AsyncHDF5DataLayer(name="train-data", source="data/train.txt", batch_size=64, shuffle=true)
- conv_layer = ConvolutionLayer(name="conv1", n_filter=20, kernel=(5,5), bottoms=[:data], tops=[:conv])
- pool_layer = PoolingLayer(name="pool1", kernel=(2,2), stride=(2,2), bottoms=[:conv], tops=[:pool])
- conv2_layer = ConvolutionLayer(name="conv2", n_filter=50, kernel=(5,5), bottoms=[:pool], tops=[:conv2])
- pool2_layer = PoolingLayer(name="pool2", kernel=(2,2), stride=(2,2), bottoms=[:conv2], tops=[:pool2])
- fc1_layer = InnerProductLayer(name="ip1", output_dim=500, neuron=Neurons.ReLU(), bottoms=[:pool2], tops=[:ip1])
- fc2_layer = InnerProductLayer(name="ip2", output_dim=10, bottoms=[:ip1], tops=[:ip2])
- loss_layer = SoftmaxLossLayer(name="loss", bottoms=[:ip2,:label])
- backend = DefaultBackend()
- init(backend)
- common_layers = [conv_layer, pool_layer, conv2_layer, pool2_layer, fc1_layer, fc2_layer]
- net = Net("MNIST-train", backend, [data_layer, common_layers..., loss_layer])
- exp_dir = "snapshots-$(Mocha.default_backend_type)"
- method = SGD()
- params = make_solver_parameters(method, max_iter=10000, regu_coef=0.0005,
- mom_policy=MomPolicy.Fixed(0.9),
- lr_policy=LRPolicy.Inv(0.01, 0.0001, 0.75),
- load_from=exp_dir)
- solver = Solver(method, params)
- setup_coffee_lounge(solver, save_into="$exp_dir/statistics.jld", every_n_iter=1000)
- # report training progress every 100 iterations
- add_coffee_break(solver, TrainingSummary(), every_n_iter=100)
- # save snapshots every 5000 iterations
- add_coffee_break(solver, Snapshot(exp_dir), every_n_iter=5000)
- # show performance on test data every 1000 iterations
- data_layer_test = HDF5DataLayer(name="test-data", source="data/test.txt", batch_size=100)
- acc_layer = AccuracyLayer(name="test-accuracy", bottoms=[:ip2, :label])
- test_net = Net("MNIST-test", backend, [data_layer_test, common_layers..., acc_layer])
- add_coffee_break(solver, ValidationPerformance(test_net), every_n_iter=1000)
- solve(solver, net)
- #Profile.init(int(1e8), 0.001)
- #@profile solve(solver, net)
- #open("profile.txt", "w") do out
- # Profile.print(out)
- #end
- destroy(net)
- destroy(test_net)
- shutdown(backend)
随机器学习兴起的Julia编程语言相关推荐
- julia 编程语言_Julia编程语言中的变量
julia 编程语言 Julia中的变量 (Variables in Julia) Just like other programming languages, in Julia variables ...
- 机器学习LDA-基础Julia与Python的实现
最近在看一本名为机器学习公式推导与代码实现的书,书中有用Numpy实现的LDA算法,具体Python代码如下 import numpy as np from sklearn import datase ...
- 入门机器学习需要会哪些编程语言?
对"机器学习"跃跃欲试的你,可能也有这样的问题:入门机器学习,我需要会那种(些)酷炫的编程语言呢?别问了,这个问题的"正解"可能会让你大吃一惊. 不论你选择哪种 ...
- julia编程语言有前途吗?
Julia是一种高级编程语言,特别适合科学计算和数据分析.它具有高效的运行速度和易于使用的语法,并且有很多功能强大的包和工具. 随着数据科学和人工智能领域的不断发展,Julia在这些领域的需求越来越大 ...
- 机器学习使用什么编程语言_什么是机器学习项目的最佳编程语言
机器学习使用什么编程语言 -以及为什么是Python. Python是机器学习使用的事实上的编程语言. 这是由于它的简单性和可读性,它使用户可以专注于算法和结果,而不是浪费时间在有效地构造代码并保持可 ...
- 心得丨对于机器学习,到底该选择哪种编程语言
作者: jihong10102006 开发者到底应该学习哪种编程语言才能获得机器学习或数据科学这类工作呢?这是一个非常重要的问题.我们在许多论坛上都有讨论过.现在,我可以提供我自己的答案并解释原因,但 ...
- 机械学哪种计算机语言,对于机器学习,到底该选择哪种编程语言?
姓名:郭金 学号:17101223407 参考链接:Indeed.com [嵌牛导读]:本文根据一些数据进行分析带大家了解机器学习的学习应该适合的语言的一些建议. [嵌牛鼻子]:机器学习.编程语言 ...
- Julia 创始人访谈:简单机器学习任务可与 Python 媲美,复杂任务胜过 Python
编者按:2012年,也就是八年前,Julia发布了最初版本.今年,科技媒体Jaxenter采访了Julia的四位创始人,Dr. Viral B. Shah, Dr. Jeff Bezanson, St ...
- 对于机器学习,到底该选择哪种编程语言
开发者到底应该学习哪种编程语言才能获得机器学习或数据科学这类工作呢?这是一个非常重要的问题.我们在许多论坛上都有讨论过.现在,我可以提供我自己的答案并解释原因,但我们先看一些数据.毕竟,这是机器学习者 ...
最新文章
- 【No.5 类型转换导致的错误】
- 面试AI算法岗,你被要求复现顶会了嘛?
- OA软件实施中三个不能做的
- wps分享为什么要登入_【知识分享】柴油为什么要加氢处理?
- LeetCode 1111. 有效括号的嵌套深度(奇偶分离)
- 惠普800g1支持什么内存_惠普黑白激光打印机哪种好 惠普黑白激光打印机推荐【图文详解】...
- C语言实现Winsocket网络传输数据时乱码问题
- 当开发帆软插件得时候如果安装插件遇到 ***插件版本过低 请安装高版本插件
- 连接服务器用xshell还是linux,【linux☞5】xshell 连接服务器的简单介绍
- 1.10 Linux文件目录用户与用户组修改
- Notepad++官网下载
- WPF MediaElement循环播放
- MT6573驱动开发日志之touchpanel
- 看刘未鹏先生的博客的一些摘记
- Thinkpad E450c进入BIOS
- 学历学籍系统-Web服务开发实验(REST API)
- 青少年计算机编程经验,青少年学习计算机编程前景
- 结构图的分类--产品功能结构图、产品信息结构图、产品结构图
- 扛住100亿次请求——如何做一个“有把握”的春晚红包系统?
- 2-4 Python初中级工程师技能要求和面试标准
热门文章
- 7-31 字符串循环左移 (C语言)
- 变速更顺滑_1.6TGDI直喷发动机+7速湿式双离合自动变速箱,表现会如何?
- mongodb 字符串转bson_BSON及mongoDB数据类型
- 高性能ASP.NET站点构建之托管资源优化
- 八天学会MongoDB:第五天 主从复制
- springmvc前台String转后台Date
- cisco路由器ios升级(rommon下)
- SCCM2012系列之三,SCCM2012部署前的IIS准备
- Learning by doing 系列文章(之一)如何在 Python 中使用 epoll ?
- DiscuzNT 商品交易插件设计之[线下交易流程]