Julia 常用包

ref
trend
observer

零.环境

IJulia 是一个以Julia为后端的交互式环境,可以方便的进行交互式编程

  • 安装
using Pkg
Pkg.add("IJulia")
  • 使用
using IJulia
notebook()

一.数据处理

常用的数据处理包包括以下几个方面:

1.基本科学计算

TODO

2.数据I/O

  • CSV

  • DataFrames


二.绘图

TODO


三.机器学习

Mocha

Mocha是一个高效的深度学习框架,包含了通用的随机梯度求解器,可以它构建层训练深、浅(卷积)网络。

  • 安装
    Pkg.add("Mocha)
  • 使用例子
using Mochadata  = HDF5DataLayer(name="train-data",source="train-data-list.txt",batch_size=64)
conv  = ConvolutionLayer(name="conv1",n_filter=20,kernel=(5,5),bottoms=[:data],tops=[:conv])
pool  = PoolingLayer(name="pool1",kernel=(2,2),stride=(2,2),bottoms=[:conv],tops=[:pool])
conv2 = ConvolutionLayer(name="conv2",n_filter=50,kernel=(5,5),bottoms=[:pool],tops=[:conv2])
pool2 = PoolingLayer(name="pool2",kernel=(2,2),stride=(2,2),bottoms=[:conv2],tops=[:pool2])
fc1   = InnerProductLayer(name="ip1",output_dim=500,neuron=Neurons.ReLU(),bottoms=[:pool2],tops=[:ip1])
fc2   = InnerProductLayer(name="ip2",output_dim=10,bottoms=[:ip1],tops=[:ip2])
loss  = SoftmaxLossLayer(name="loss",bottoms=[:ip2,:label])backend = DefaultBackend()
init(backend)common_layers = [conv, pool, conv2, pool2, fc1, fc2]
net = Net("MNIST-train", backend, [data, common_layers..., loss])exp_dir = "snapshots"
solver_method = SGD()
params = make_solver_parameters(solver_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(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_test = HDF5DataLayer(name="test-data",source="test-data-list.txt",batch_size=100)
accuracy = AccuracyLayer(name="test-accuracy",bottoms=[:ip2, :label])
test_net = Net("MNIST-test", backend, [data_test, common_layers..., accuracy])
add_coffee_break(solver, ValidationPerformance(test_net), every_n_iter=1000)solve(solver, net)destroy(net)
destroy(test_net)
shutdown(backend)

2.Flux

flux是一个机器学习工具包,可以实现各种基本模型(如线性回归)到复杂模型(如神经网络)的搭建、优化和使用。

- 安装

Pkg.add("Flux")
# 可选项目 更新和测试
Pkg.update() # Keep your packages up to date
Pkg.test("Flux") # Check things installed correctly
  • 使用,简单模型
#定义模型
W = rand(2, 5)
b = rand(2)predict(x) = W*x .+ bfunction loss(x, y)ŷ = predict(x)sum((y .- ŷ).^2)
endx, y = rand(5), rand(2) # Dummy data
loss(x, y) # ~ 3# 求解梯度
using Flux.TrackerW = param(W)
b = param(b)gs = Tracker.gradient(() -> loss(x, y), Params([W, b]))#更新权重
using Flux.Tracker: update!Δ = gs[W]# Update the parameter and reset the gradient
update!(W, -0.1Δ)loss(x, y) # ~ 2.5

3.Tensorflow

tensorfl.jl基于tensorflow开发的julia封装。
- 安装
Pkg.add("TensorFlow")
- 使用
GPU支持
ENV["TF_USE_GPU"] = "1"
Pkg.build("TensorFlow")

简单的例子:

using TensorFlowsess = TensorFlow.Session()x = TensorFlow.constant(Float64[1,2])
y = TensorFlow.Variable(Float64[3,4])
z = TensorFlow.placeholder(Float64)w = exp(x + z + -y)run(sess, TensorFlow.global_variables_initializer())
res = run(sess, w, Dict(z=>Float64[1,2]))
Base.Test.@test res[1] ≈ exp(-1)

4.MxNet

MNXET(https://github.com/dmlc/MXNet.jl)julia包

  • 安装
    Pkg.add("MXNet")
  • 使用
using MXNet
#模型定义
mlp = @mx.chain mx.Variable(:data)             =>mx.FullyConnected(name=:fc1, num_hidden=128) =>mx.Activation(name=:relu1, act_type=:relu)   =>mx.FullyConnected(name=:fc2, num_hidden=64)  =>mx.Activation(name=:relu2, act_type=:relu)   =>mx.FullyConnected(name=:fc3, num_hidden=10)  =>mx.SoftmaxOutput(name=:softmax)# data provider
batch_size = 100
include(Pkg.dir("MXNet", "examples", "mnist", "mnist-data.jl"))
train_provider, eval_provider = get_mnist_providers(batch_size)# setup model
model = mx.FeedForward(mlp, context=mx.cpu())# optimization algorithm
# where η is learning rate and μ is momentum
optimizer = mx.SGD(η=0.1, μ=0.9)#模型训练
# fit parameters
mx.fit(model, optimizer, train_provider, n_epoch=20, eval_data=eval_provider)#预测
probs = mx.predict(model, eval_provider)# collect all labels from eval data
labels = reduce(vcat,copy(mx.get(eval_provider, batch, :softmax_label)) for batch ∈ eval_provider)
# labels are 0...9
labels .= labels .+ 1# Now we use compute the accuracy
pred = map(i -> indmax(probs[1:10, i]), 1:size(probs, 2))
correct = sum(pred .== labels)
accuracy = 100correct/length(labels)
@printf "Accuracy on eval set: %.2f%%\n" accuracy

5.Scikit

scikitlearn流行的机器学习包julia实现,支持多种机器学习模型。

- 安装
Pkg.add("ScikitLearn")
- 使用的简单例子

using RDatasets: datasetiris = dataset("datasets", "iris")
#定义数据
# ScikitLearn.jl expects arrays, but DataFrames can also be used - see
# the corresponding section of the manual
X = convert(Array, iris[[:SepalLength, :SepalWidth, :PetalLength, :PetalWidth]])
y = convert(Array, iris[:Species])#载入逻辑回归模型
using ScikitLearn# This model requires scikit-learn. See
# http://scikitlearnjl.readthedocs.io/en/latest/models/#installation
@sk_import linear_model: LogisticRegression
Every model's constructor accepts hyperparameters (such as regression strength, whether to fit the intercept, the penalty type, etc.) as keyword arguments. Check out ?LogisticRegression for details.model = LogisticRegression(fit_intercept=true)
Then we train the model and evaluate its accuracy on the training set:#训练
fit!(model, X, y)
#预测
accuracy = sum(predict(model, X) .== y) / length(y)
println("accuracy: $accuracy")> accuracy: 0.96

Julia常用包总结(深度学习、数据科学、绘图...updating...)相关推荐

  1. 深度学习数据集制作工作_创建我的第一个深度学习+数据科学工作站

    深度学习数据集制作工作 My Home Setup 我的家庭设置 Creating my workstation has been a dream for me, if nothing else. 创 ...

  2. 我如何配置自己的第一个深度学习+数据科学工作站?

    全文共4129字,预计学习时长11分钟 图源:unsplash 配置自己的工作站是我一直以来梦寐以求的事情.我倒是知道该如何配置,但却迟迟没有尝试,无非是因为没钱或没时间,主要是没钱. 但终于到了事在 ...

  3. 一个数据包的旅程_如何学习数据科学并开始您的惊人旅程

    一个数据包的旅程 With coming fast tech industry changes and robotic innovations, Data Science is one of the ...

  4. 深度学习数据更换背景_开始学习数据科学的最佳方法是了解其背景

    深度学习数据更换背景 数据科学教育 (DATA SCIENCE EDUCATION) 目录 (Table of Contents) The Importance of Context Knowledg ...

  5. 深度学习数据自动编码器_如何学习数据科学编码

    深度学习数据自动编码器 意见 (Opinion) When I first wanted to learn programming, I coded along to a 4 hour long Yo ...

  6. 【matplotlib + opencv】关于opencv和matplotlib绘制图像时,出现色差色偏的问题探讨,思考,解决。(深度学习数据包plt.imshow绘制的图像底色偏绿蓝偏黄)

    文章目录 一.图像红变蓝,蓝变红的问题 (1)原因分析 (2)代码及结果展示 1)错误代码 2)错误结果 3)正确代码 二.深度学习数据包plt.imshow绘制图像偏蓝黄色 (1)原因分析 1)原理 ...

  7. Julia常用包简介

    第三方开发的Julia库(包),是Julia生态中极为重要的一部分.Julia包虽然目前没有Python那样丰富,但却极为快速地发展着.官方提供了包数量的统计趋势,见下图所示: 图D-1 Julia包 ...

  8. 零基础使用Swift学习数据科学

    概述 Swift正迅速成为数据科学中最强大.最有效的语言之一 Swift与Python非常相似,所以你会发现2种语言的转换非常平滑 我们将介绍Swift的基础知识,并学习如何使用该语言构建你的第一个数 ...

  9. 深度学习入门笔记(十二):深度学习数据读取

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

最新文章

  1. symfony2项目访问app_dev.php不显示debug工具栏的问题
  2. python浮点数占多少字节_Python的浮点数损失精度问题
  3. db2去除字段内容空格_Vue CLI3.x 配置指南生产环境去除console
  4. 快搜浏览器_郑秀晶因腿粗再上热搜:怎么减肥才能不反弹?
  5. 阿里云机器学习怎么玩?这本新手入门指南揭秘了!
  6. python拆分excel的sheet为单文件_pandas处理excel一个sheet拆分为多个sheet
  7. gephi生成网络关系图_路网拓扑重建专题 (3) 网络图生成
  8. hibernate使用二级缓存ehcahe的配置
  9. 柔性太阳能电池pdf_电子科大刘明侦教授团队钙钛矿太阳能电池研究取得重要进展...
  10. oracle下拉菜单多选,多选下拉控件的使用(select-option)multiple-select
  11. 二元函数连续与偏导数存在的关系_偏导数存在(二元函数连续性怎么判断)
  12. 祝贺深圳程序员社区成立
  13. 杭电OJ 1032(C++)
  14. 百度收录自动化提交脚本 - python
  15. 秋风:教育部办学还是学校办学?
  16. Latex数学公式-矩阵中省略号的表示
  17. 电脑钢琴模拟器(初学WINDOW库)
  18. 为什么自动驾驶遇瓶颈,但自动代客泊车却很热?
  19. MySQL高级-04-授课笔记
  20. 将u盘插入apple苹果系统后发现再插入window系统发现无法新建文件夹或者文件,新建new功能消失了

热门文章

  1. 通过kubernetes release制作k8s rpm包
  2. jquery.text()和.html()的原理
  3. html 手机浏览器:屏幕适配 - 代码篇
  4. MCMS 基于SpringBoot 2架构
  5. wordpress主题-一款功能强大的综合类型wordpress模板
  6. 萝卜源码前后端源码 附打包APP的教程
  7. 织梦响应式个人博客资讯网站模板(自适应手机移动端)
  8. java 下载图片 弹出框_javaweb多图片打包下载,弹出提示框问题_html/css_WEB-ITnose
  9. 时间日期大小比较判断,时间戳/时间 - 转换
  10. 源商城系统V1.0仿卡盟