Keras とは?

Keras

Keras最新情報

NRIのOpenStandiaが提供するKeras最新情報

Kerasの保守サポートサービスの内容はこちら Kerasの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Kerasバージョンアップ情報

すべてを見る

更新日:2021-12-24

Kerasの概要

Kerasのトップ画像

Keras(ケラス)は、TensorFlowの上で実行可能な高水準のニューラルネットワークライブラリです。迅速な実験を可能にすることに重点を置いて開発されたため、簡単なPythonのコードで多くのモデルを素早く実装できます。ディープラーニングの初心者が実装を始めるには最も適したライブラリと言えます。

例えば、次のような4つの特徴を持つアヤメのデータを学習して、

  • がくの長さ
  • がくの幅
  • 花弁の長さ
  • 花弁の幅

3種類(versicolor、virginica、setosa)に分類するモデルを作成したい場合、

3種類のアヤメ(左からversicolor、virginica、setosa
図: 3種類のアヤメ(左からversicolor、virginica、setosa)


次のようにニューラルネットワークのモデルで実現できますが、
アヤメのデータを学習して予測する簡単なモデル

図: アヤメのデータを学習して予測する簡単なモデル

以下のようなコードを実装するだけでこれを実現できます(※)。

            
 # 必要なライブラリのインポート
 import tensorflow as tf
 import keras
 from sklearn import datasets, preprocessing
 from sklearn.model_selection import train_test_split
 from keras.layers.core import Dense, Activation
 from keras.models import Sequential
 from keras.utils import np_utils
            
 # アヤメのデータの読み込み(scikit-learnに含まれているサンプル)
 iris = datasets.load_iris()
 x = iris.data
 y = iris.target
            
 # データの前処理
 x = preprocessing.scale(x)
 y = np_utils.to_categorical(y)
            
 # 学習データとテストデータに分割
 x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)
            
 # モデルの作成
 model = Sequential()
 model.add(Dense(input_dim=4, units=3, activation='softmax'))
 model.compile(optimizer='adam', loss='categorical_crossentropy',
 metrics=['accuracy'])
            
 # 学習
 model.fit(x_train, y_train, epochs=50, batch_size=1, verbose=1)
            
 # 評価
 loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
 print ('Accuracy', '{:.2f}'.format(accuracy))

※scikit-learnとTensorFlowも使用しています。

このように分かりやすいコードで実現できるのがKerasの特徴の1つです。この単純なモデルでの正確度は92%になりますが、モデルを改良することでさらに正確度が向上します。そして、未知のデータに対してはmodel.predict_classes()でどの種類か予測することができます。

もともと、KerasはTensorFlowの他にTheanoやCNTKなどの複数のフレームワークからバックエンドを選択できるライブラリでした。しかし、2020年6月にリリースされたバージョン2.4.0で、TensorFlow のみをバックエンドとするライブラリとなりました。TensorFlow 2.0以降では、TensorFlowのインストールと同時にKerasもインストールされることになります。

TOPに戻る

Kerasの機能および特徴

Kerasの公式サイトでは「Why choose Keras?」として、以下を挙げています。

  • 簡単かつ柔軟

    一貫性のあるシンプルなAPIや提供しており、明確なエラーメッセージを返すため、学習が容易です。またTensorFlowの機能と統合されているため、機能の一部を柔軟にカスタマイズできます。

    このようにKerasはとても使い勝手が良いOSSです。そのため、2019年の初めに行われた調査にて、過去2年間のKaggleコンテストの上位5社(N = 120)が使用しているディープラーニングのフレームワークの1位にもランクインしました。

  • 図: Kaggleコンテスト上位5社で最も使用されたディープラーニングのフレームワーク
    図: Kaggleコンテスト上位5社で最も使用されたディープラーニングのフレームワーク
  • 利用実績

    2020年の初めの時点で、375000人を超える個人ユーザーがおり、TensorFlowとともに、他の深層学習フレームワークよりも事業と研究コミュニティの両方で多く採用されています。Netflix、Uber、Yelp、Instacart、Zocdoc、Squareなど多くの企業がKerasを使用しています。また、CERNやNASAなどの大規模な科学機関の研究者にも採用されています。

  • 利用実績
  • 簡単にモデルを製品化

    Kerasのモデルは、他のどの深層学習APIよりも幅広いプラットフォームに簡単にデプロイできます。

    • サーバー上のPythonランタイムまたはNode.jsランタイム
    • サーバー上でTFX / TF配信
    • TF.js経由のブラウザー
    • TF LiteやAppleのCoreMLを介したAndroidまたはiOS
    • Raspberry Pi、Edge TPU、または別の組み込みシステム

  • マルチGPU、分散学習のサポート

    Kerasはスケーラブルです。TensorFlow DistributionStrategy APIを使用すると、大規模なGPUクラスタ(最大数千のデバイス)またはTPUポッド全体でモデルを簡単に実行でき、1EFLOPS以上の計算能力を実現します。
    また、最新のNVIDIA GPUとTPUの混合精度学習をネイティブでサポートしており、学習と推論で最大2倍のスピードアップを提供できます。

  • 機械学習ワークフローのすべてのステップをカバー

    Kerasは、関連する多くのプロダクトとともに構成されるエコシステムの中心にあります。これにより、機械学習ワークフローのすべてのステップをカバーすることができます。
    • AutoKerasによる高速なモデルプロトタイピング
    • TF Cloudを介したGCPでのスケーラブルなモデルの学習
    • Keras Tunerによるハイパーパラメーターの調整
    • TensorFlowアドオンでの追加のレイヤー、損失、メトリック、コールバック...
    • TF Model Optimization Toolkitを使用した推論モデルの量子化とプルーニング
    • TF Liteでのモバイルや組み込み機器上でのモデルのデプロイ
    • TF.jsによるブラウザーでのモデルのデプロイ
      等々

TOPに戻る

Kerasのライセンス

Kerasのライセンスは、バージョン2.4まではMITライセンスです。
バージョン2.6 からはApache License2.0になっています。

MITライセンスは、X Window System (X11)などのソフトウェアに適用されていることから、X11ライセンス、またはXライセンスとも表記されます。MITライセンスは、数あるソフトウェアライセンスの中で最も制約が少なく、ソースコードの無償の使用のほか、改変、再配布することも認められています。Apache Licenseのコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

Kerasのライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

Kerasと同類のソフトウェア

OSSの機械学習のフレームワークは他にも多数ありますが、Kerasのように他のフレームワーク(TensorFlow)をバックエンドにする高レベルのライブラリで有名なものはそれほど多くありません。その分野ではデファクトスタンダードなOSSと言えます。

TOPに戻る

NRIのKerasサポート(保守/サポートサービス)

  • 現在、Kerasのサポートを実施していません。

    ※詳細はお問い合わせください。

TOPに戻る

関連OSS

TOPに戻る

h3 class="h2smalltitle">参考情報

Keras公式サイト

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO