1. 程式人生 > >各大機器學習包彙總(python版,持續更新)

各大機器學習包彙總(python版,持續更新)

隨著機器學習的逐日升溫,各種相關開源包也是層出不群,面對如此多種類的工具包,該如何選擇,有的甚至還知之甚少或者不知呢,本文簡單彙總了一下當下使用比較多的Python版本機器學習工具包,供大家參看,還很不全不詳盡,會持續更新,也歡迎大家補充,多謝多謝!~~~

scikit-learn:

基於python機器學習模組,基於BSD開源許可證。這個專案最早由DavidCournapeau 在2007 年發起的,目前也是由社群自願者進行維護。基本功能主要被分為六個部分,分類,迴歸,聚類,資料降維,模型選擇,資料預處理,具體可以參考官方網站上的文件。

Theano: 

除錯過程費勁,可以隨心所欲寫程式碼,但是求導和GPU透明,比較看好。

大部分程式碼是使用Cython編寫,Cython是一個可編譯為本地可執行程式碼的Python方言,與僅僅使用解釋性Python語言相比,它能夠使執行速度快速提升。最重要的是,很多優化程式已經整合到Theano庫中,它能夠優化你的計算量並讓你的執行時間保持最低。

    還內建支援使用CUDA在GPU上執行那些所有耗時的計算。所有的這一切僅僅只需要修改配置檔案中的標誌位即可。在CPU上執行一個指令碼,然後切換到GPU,而對於你的程式碼,則不需要做任何變化。

    儘管Theano使用Cython和CUDA對其效能大大提升,但你仍然可以僅僅使用Python語言來建立幾乎任何型別的神經網路結構。

Numbapro:

自己寫GPU加速的話比較麻煩,需要浪費時間寫一些基礎的函式編寫。

Caffe:

    一個清晰而高效的深度學習框架,Caffe是純粹的C++/CUDA架構,支援命令列、Python和MATLAB介面;可以在CPU和GPU直接無縫切換.

    Caffe的優勢:

(1)上手快:模型與相應優化都是以文字形式而非程式碼形式給出。Caffe給出了模型 的定義、最優化設定以及預訓練的權重,方便立即上手。

(2)速度快:能夠執行最棒的模型與海量的資料。Caffe與cuDNN結合使用,測試AlexNet 模型,在K40上處理每張圖片只需要1.17ms.

(3)模組化:方便擴充套件到新的任務和設定上。可以使用Caffe提供的各層型別來定義自己的模型。

(4)開放性:公開的程式碼和參考模型用於再現。

(5)社群好:可以通過BSD-2參與開發與討論。

pylearn2:

不靈活。

    Pylearn2和Theano由同一個開發團隊開發,Pylearn2是一個機器學習庫,它把深度學習和人工智慧研究許多常用的模型以及訓練演算法封裝成一個單一的實驗包,如隨機梯度下降。

    也可以很輕鬆的圍繞你的類和演算法編寫一個封裝程式,為了能讓它在Pylearn2上執行,你需要在一個單獨的YAML格式的配置檔案中配置你整個神經網路模型的引數。

nolearn + lasagne:

Kaggle比賽者常用,Lasagne目前據說最好

    其中Lasagne是一個與Blocks和Keras有著相似功能的深度學習庫,但其在設計上與它們有些不同。

    下面是Lasagne的一些設計目的:

(1)簡單化:它應該是易於使用和擴充套件的機器學習庫。每新增一個特徵,就應該考慮其對易用性和擴充套件性的影響。每一個抽象概念的加入都應該仔細檢查,以確定增加的複雜性是否合理。

(2)小介面:儘可能少的類和方法。儘可能依賴Theano的功能和資料型別,遵循Theano的規定。如果沒有嚴格的必要,不要在類中封裝東西。這會使它更容易使用庫並且擴充套件它(不需要有太多的認知)。

(3)不礙事:未使用的功能應該是不可見的,使用者不會考慮他們不使用的功能。儘可能單獨的使用庫檔案中的元件。

(4)透明性:不要試圖掩蓋Theano,儘量以Python或NumPy資料型別的形式將函式和方法返回給Theano表示式。

(5)重點:遵循Unix哲學“做一件事,並把它做好”,重點集中在前饋神經網路。

(6)實用主義:使普通用例更易於使用,這要比支援每一個可能的用例更為重要。

keras:         

    是一個簡約的、高度模組化的神經網路庫,設計參考了Torch,基於Theano和Python語言編寫,支援GPU和CPU。它的開發側重於實現快速試驗和創造新的深度學習模型。

    如果你需要具有以下功能的深度學習庫,採用Keras就恰到好處:

(1)可以很容易地、快速地建立原型(通過總體模組化,極簡化並且可擴充套件化)。

(2)支援卷積網路和遞迴網路,以及兩者的組合。

(3)支援任意連線方式(包括多輸入多輸出訓練)

    (4)編碼風格非常簡約、清晰。它把所有的要點使用小類封裝起來,能夠很容易地組合在一起並創造出一種全新的模型。

torch:

暫不瞭解,歡迎補充~~~

Blocks:

(1)一個非常模組化的框架,有助於你在Theano上建立神經網路。

(2)目前它支援並提供的功能有:

(3)構建引數化Theano運算,稱之為“bricks”。

(4)在大型模型中使用模式匹配來選擇變數以及“bricks”。

(5)使用演算法優化模型。

(6)訓練模型的儲存和恢復。

(7)在訓練過程中檢測和分析值(訓練集以及測試集)。

(8)圖形變換的應用,如dropout。


相關推薦

機器學習彙總python持續更新

隨著機器學習的逐日升溫,各種相關開源包也是層出不群,面對如此多種類的工具包,該如何選擇,有的甚至還知之甚少或者不知呢,本文簡單彙總了一下當下使用比較多的Python版本機器學習工具包,供大家參看,還很不全不詳盡,會持續更新,也歡迎大家補充,多謝多謝!~~~ scik

在MacOS系統安裝homebrew2017年末持續更新

中國網際網路上對於初學開發者實在是不太友好。百度會讓你搜出大量的重複內容,技術部落格大家一字不動抄來抄去——甚至不及媒體行業,至少人家知道抄之前改改(洗文);有些人為了沽名釣譽寫一些標題黨文章,對於解決問題毫無幫助;以及還存在問題解答方法由於版本更新失效的客觀問

pandas常用功能與函式介紹結合例項持續更新

import numpy as np import pandas as pd from Cython.Shadow import inline import matplotlib.pyplot as plt #matplotlib inline ###################1 or

oracle常用命令日常整理持續更新

oracle常用命令 一、Oracle資料庫例項、使用者、目錄及session會話檢視: 1、ORACLE SID檢視設定 檢視SID、使用者名稱 $ env|grep SID 、select * from v$instance、select instance_name,h

unsafe未完成持續更新

unsafe本來的英文意思就是不安全的、危險的。在java中的角色同樣也是不安全的、危險的。它是在java包中的sun.msic,

四、資料推動機器學習的發展Scale drives machine learning progress

數十年前已經有了深度學習(神經網路)的研究和相關觀點,為什麼最近幾年變得這麼火? 深度學習最近得以快速發展的兩個原因如下: 大資料:現如今,電子裝置(平板、智慧手機)佔用了人們更多的時間,這些電子裝置產生的大量資料可以作為演算法的輸入。 計算能力的提升:幾年前

Python爬取股票資料繪製K線和均線並用機器學習預測股價來自我出的書

    最近我出了一本書,《基於股票大資料分析的Python入門實戰 視訊教學版》,京東連結:https://item.jd.com/69241653952.html,在其中用股票範例講述Python爬蟲、資料分析和機器學習的技術,大家看了我的書,不僅能很快用比較熱門的案例學好Python

機器學習 學習記錄2018-11-23 -- 持續更新

機器學習 學習記錄(2018-11-23 – 持續更新) http://yanghuangblog.com/index.php/archives/6/ [BLOG] 文章目錄 機器學習 學習記錄(2018-11-23 -- 持續更新) 學習路

機器學習 吳恩達 課程筆記自用持續更新

機器學習 吳恩達 簡介 本筆記為自用筆記,因此只記錄了自己覺得重要的部分,所以不建議想要系統學習的人閱讀此筆記。 緒論 監督學習 我們給演算法一個數據集,其中包含了正確的答案,目的為給出更多的正確答案 “迴歸問題”:regression “分類問題”:cla

Python入門學習筆記————08list函式元組

#傳值與傳地址的區別 #對於簡單的數值,採用傳值的操作,即在函式內的操作不影響外面的變數 #對複雜的變數,採用傳遞地址的操作,此時進行的操作即是對函式本身的操作 ​ def a(n): n[2]=300 print(n) return None

斯坦福-機器學習第一講梯度下降演算法回顧總結

在此將斯坦福-機器學習第一講(梯度下降演算法)做個詳細總結: 1.Linear regression(線性迴歸) 2.Gradient descent(梯度下降) 3.Ordinary Least Square(傳統的最小二乘法) 4.Normal equation(正規

高階前端面試題彙總只有試題沒有答案

面試題來源於網路,看一下高階前端的面試題,可以知道自己和高階前端的差距。有些面試題會重複。 使用過的koa2中介軟體 koa-body原理 介紹自己寫過的中介軟體 有沒有涉及到Cluster 介紹pm2 master掛了的話pm2怎麼處理 如何和MySQ

一文了解圖資料庫查詢語言Gremlin vs Cypher vs nGQL| 操作入門篇

文章的開頭我們先來看下什麼是圖資料庫,根據維基百科的定義:**圖資料庫是使用圖結構進行語義查詢的資料庫,它使用節點、邊和屬性來表示和儲存資料**。 雖然和關係型資料庫儲存的結構不同(關係型資料庫為表結構,圖資料庫為圖結構),但不計各自的效能問題,關係型資料庫可以通過遞迴查詢或者組合其他 SQL 語句(Joi

python 各個地方導航方便查詢持續更新

老男孩python全棧開發教程,武沛齊老師的知識點!:戳這裡》》》 老男孩python全棧開發教程,linhaifeng老師的知識點!:戳這裡》》》 老男孩python全棧開發教程,Eva_J老師的知識點!:戳這裡》》》 廖雪峰官方python教程!:戳這裡》》》 老男孩python全棧開發教程,My

用10分鐘搭建影象處理程式設計環境0失敗!python語言windows系統

以前,你可能看過很多的文章,開始搭建一個影象處理的程式設計環境。 結果,按照教程一步一步做的時候,總是出現各種各樣的問題。 就算成功了,後續開發過程中要用到不同版本的opencv,不同版本python,更換特別麻煩。 今天,我以我多年的經驗,給你一個安裝教程。 零

Python 刷題想練python的可以對著刷一刷持續更新

Surrounded Regions 這道題要求將完全由‘X’包圍的‘O’全部置為‘X’,也就是將由‘X’包裹的‘O’連通塊全部置為‘X’的意思。在矩陣中找連通塊,直接進行bfs就可以,如果有任意的一個‘O’到了邊界處,那麼這個‘O’連通塊就沒有被‘X’完全包圍,否則

vs2012擴充套件外掛合集親自試驗持續更新中...

開啟vs2012,在【工具】中,找到【擴充套件和更新】,然後【聯機】,這裡可都是最全的擴充套件掃外掛呀!我也準備用,如果有用的順手的,我會更新到這裡,開始測試中。。。 第一個外掛:【換vs2012面板外掛】 聯機中找到 visual Strdio 2012 color th

Django 入門個人學習筆記持續更新

導語:這些筆記都是結合自己的學習和查詢網上的資料筆記或者回答上整理,可能有很多內容類似,目的是為了讓自己以後忘了知識點可以看自己寫的筆記,第一次寫技術筆記,多多包涵。 MVC 大部分開發語言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模

Material Design學習之 CheckBox詳細分析富有表現力

老規矩,兩部分,第一部分理論知識,第二部分程式碼 選擇控制器 選擇控制器允許使用者選擇選項。有三種類型:複選框、單選框以及開/關切換。選擇控制器使用主題同樣的顏色。(待會的程式碼主要講的是單選按鈕) 複選框 單選按鈕 切換

Linux運維人員成長之路學習書籍推薦未完整有待補充

在此前的公開課中,有期望從事Linux運維的童鞋希望推薦一些學習書籍,在此先羅列一些我們在成長之路上曾經讀到過並覺得不錯的書籍,推薦給有需要者。 入門書: 《鳥哥的私房菜(基礎篇)》 《鳥哥的私房菜(服務篇)》 《Linux命令列與Shell指令碼程式設計大全(第2版)》 《UNIX/Li