Caffe(カフェ)とは、オープンソースのディープラーニングライブラリです。画像認識に特化しており、高速処理が可能です。

オープンソースのAI・人工知能/Caffeとは

Caffe(カフェ)とは、オープンソースのディープラーニングライブラリです。画像認識に特化しており、高速処理が可能です。

「Caffe」基本情報

■概要

Caffe(カフェ)とは、オープンソースのディープラーニングライブラリです。画像認識に特化しており、高速処理が可能です。

■基本説明

C++で実装されています。C++/Python/MATLABで使用できます。

「高速動作」「GPU対応」「洗練されたアーキテクチャ/ソースコード」「開発コミュニティが活発」などの特徴があります。

■経緯

Yangqing Jia氏が、カリフォルニア大学バークレー校博士課程在籍中に開発がスタートしました。

その後、カリフォルニア大学バークレー校の「コンピュータビジョンおよび機械学習に関する研究センター(Berkeley Vision and Learning Center)」が中心となって開発しています。

ヤフージャパンは、2014年6月から同センターのスポンサーとなり、Caffe開発の支援を行っています。

■オフィシャルサイト情報

オフィシャルサイト

→Caffe(Caffe | Deep Learning Framework)

ライセンス情報

Caffeのライセンスは「BSDライセンス」です。

詳細について、こちらを参照ください。
→GitHub →BVLC/caffe →caffe/LICENSE

ダウンロード

→Caffe →Installation

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「TensorFlow」「​Chainer」「Keras」など。

「Caffe」の主な特徴

■畳み込みニューラルネットワーク「CNN」

Caffeは、畳み込みニューラルネットワーク「CNN(Convolution Neural Network)」を利用しています。

CNNとは、ディープラーニング技術の1つです。全結合していない順伝播型ニューラルネットワークで、畳み込み層を通常の活性化関数でつないでいく手法です。

全結合しているニューラルネットワークに比べて高速に学習を行えるメリットがあります。

■GPU対応

CaffeはGPUを利用できます。GPUを利用して高速で動作させるためにNVIDIAのCUDA(Compute Unified Device Architecture)が必要です。

CUDAとは、NVIDIAが提供する並列コンピューティングアーキテクチャです。GPU向けC言語統合開発環境で、コンパイラ/ライブラリなどで構成されています。CUDAは、NVIDIA製ハードウェア(GPU)性能を最大限引き出せるように設計されており、計算処理能力を劇的に向上できます。

CaffeはCPUのみでの使用も可能です。

■高速処理

Python用数値計算ライブラリ「Theano」と「Caffe」のスピード比較において、「Theano」で約56分かかる処理を「Caffe」では約4分で完了できたというテスト結果も報告されています。

■高精度画像識別

画像識別に関する論文において、高精度を出した論文にCaffeを利用した研究が数多く報告されています。

■学習済モデル配布フレームワーク「Caffe Model Zoo」

Caffeには、学習済モデル配布フレームワーク「Caffe Model Zoo」があります。ネットワーク定義を1から作成しなくても、リファレンスモデルを使用して処理を実行できます。

大規模画像認識コンテスト「ILSVRC 2012」でトップとなった、畳込みニューラルネットワーク画像分類モデルをすぐに利用できます。

→Caffe →Caffe Model Zoo

■ドキュメントが充実

Caffeを紹介する記事は多く、公式ドキュメントも充実しています。

「Caffe」の主な機能

■Caffeがサポートしている主な機能

・CNNを利用した画像の多クラス分類
・CNNによる特徴ベクトルの抽出
・CNNの転移学習
・Stacked Auto Encoder など

■言語インターフェース

Caffeは、コア言語として「C++」で実装されています。

インターフェースとして「C++」「Python」「MATLAB」などを利用できます。

■数値解析ソフトウェア「MATLAB」

「MATLAB」とは、数値解析ソフトウェア(プログラミング言語)です。

「行列計算機能」「関数とデータの可視化機能」「アルゴリズム開発機能」「グラフィカルインターフェース」「他言語(C/C++/Java/Python)とのインターフェース」などの機能を有しています。

「Caffe」の基本的な使い方

■①ネットワーク定義

設定ファイル(lenet_train_test.prototxt)に、処理順番(Convolution層/Pooling層など)とパラメータ設定を定義します。

JSONのような形式で、レイヤーごとに分けて記載します。

■②solver定義

重みの学習方法を設定するための「solver定義ファイル」を作成します。

■③コマンドで学習を開始

コマンドで学習を開始します。

Caffe最新TOPICS

【OSS】主要オープンソースAIツール12選---Apache Mahout、OpenNN、TensorFlow(2018年09月05日 11:38)

AI研究プロジェクトなどをサポートする主要なオープンソースAIツールを紹介。 ①Apache Mahout 統計と線形代数を含む一般的な数学問題の作業を簡素化するように設計されている。 ...

Caffe最新CLOSEUPコラム

  • 勉強会
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter