ホーム » Keras » Keras 2.2.0 リリースノート

Keras 2.2.0 リリースノート

Keras 2.2.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 06/08/2018

  • Keras のマイナーアップデート 2.2.0 がリリースされましたので、リリースノートを翻訳しておきました。

* 本ページは、github Keras の releases の Keras 2.2.0 を翻訳したものです:

 

改良領域

  • 新しいモデル定義 API: Model サブクラス化 (= subclassing)。
  • 新しい入力モード: TensorFlow tensor 上のモデルを呼び出す能力 (TensorFlow バックエンドのみ)。
  • Theano と CNTK バックエンドにおける Keras の機能範囲の改良。
  • バグ修正とパフォーマンス改良。
  • コード構造、コードの健全性 (= health)、そしてテスト時間の縮小のための巨大なリファクタリング。特に :
    • 今では Keras エンジンはいっそう多くのモジュール構造を進めています。
    • Sequential モデルは今では Model の平易なサブクラスです。
    • モジュール applications と preprocessing は今ではそれら自身のレポジトリへと外部に置かれます (keras-applicationskeras-preprocessing)。

 

API 変更

  • Model サブクラス化 API の追加 (詳細は後述)。
  • TensorFlow バックエンドにおいて、シンボリック tensor がモデルに供給されることを可能にします (詳細は後述)。
  • CNTK と Theano に層 SeparableConv1D, SeparableConv2D そしてバックエンド・メソッド separable_conv1d と separable_conv2d のためのサポートを可能にします (以前は TenosrFlow のためにのみ利用可能)。
  • CNTK と Theano に applications Xception と MobileNet のためのサポートを可能にします (以前は TensorFlow のためにのみ利用可能)。
  • MobileNetV2 アプリケーションを追加します (総てのバックエンドで利用可能)。
  • ~/.keras.json configuration ファイル (e.g. PlaidML バックエンド) の変更により外部 (組み込みでない) バックエンドのロードを可能にします。
  • ImageDataGenerator で sample_weight を追加します。
  • 画像をディスクに書くための preprocessing.image.save_img ユティリティを追加します。
  • Flatten 層の data_format 引数のデフォルトを None にします (これはデフォルトを global Keras config にします)。
  • Sequential は今では Model の平易なサブクラスです。属性 sequential.model は deprecated です。
  • EarlyStopping に baseline 引数を追加します (与えられた baseline に達しない場合訓練を停止します)。
  • Conv1D に data_format 引数を追加します。
  • multi_gpu_model serializable により返されるモデルを作成します。
  • TimeDistributed 層の入力マスキングをサポートします。
  • advanced_activation 層 ReLU を追加します、容易なシリアリゼーション機能を保持しながら ReLU 活性に configure することを容易にします。
  • backend crossentropy 関数で axis=-1 引数を追加します、これは入力 tensor のクラス予測軸を指定します。

 

新しいモデル定義 API : Model サブクラス化

Sequential API と functional Model API に加えて、Model クラスのサブクラス化と貴方自身の call forward パスを書くことにより今ではモデルを定義可能です :

import keras

class SimpleMLP(keras.Model):

    def __init__(self, use_bn=False, use_dp=False, num_classes=10):
        super(SimpleMLP, self).__init__(name='mlp')
        self.use_bn = use_bn
        self.use_dp = use_dp
        self.num_classes = num_classes

        self.dense1 = keras.layers.Dense(32, activation='relu')
        self.dense2 = keras.layers.Dense(num_classes, activation='softmax')
        if self.use_dp:
            self.dp = keras.layers.Dropout(0.5)
        if self.use_bn:
            self.bn = keras.layers.BatchNormalization(axis=-1)

    def call(self, inputs):
        x = self.dense1(inputs)
        if self.use_dp:
            x = self.dp(x)
        if self.use_bn:
            x = self.bn(x)
        return self.dense2(x)

model = SimpleMLP()
model.compile(...)
model.fit(...)

層は __init__(self, …) で定義されて、forward パスは call(self, inputs) で指定されます。call では、self.add_loss(loss_tensor) を呼び出すことによりカスタム損失の指定も可能です (カスタム層でそうするようにです)。

 

新しい入力モード : シンボリック TensorFlow tensor

Keras 2.2.0 と TensorFlow 1.8 またはそれ以上において、シンボリック TensorFlow tensor を使用して (それらはデータを無期限に yeild することが想定されます)、fit, evaluate そして predict が可能です。API は fit_generator と他の generator メソッドで使用中のものに類似しています :

iterator = training_dataset.make_one_shot_iterator()
x, y = iterator.get_next()

model.fit(x, y, steps_per_epoch=100, epochs=10)

iterator = validation_dataset.make_one_shot_iterator()
x, y = iterator.get_next()
model.evaluate(x, y, steps=50)

 

互換性を壊す変更 (Breaking Changes)

  • legacy Merge 層と関連する機能 (Keras 0 の遺物) を削除します、これは May 2016 には deprecated で、完全削除は初期には August 2017 にスケジュールされていました。これらの層を使用する Keras 0 API からのモデルは Keras 2.2.0 及びそれ以上ではロードできません。
  • truncated_normal base 初期化子は今では ~0.9 でスケールされた値を返します(truncation 後に正しい分散値の結果になります)。幾つかのモデルでは初期収束挙動に影響する小さな可能性を持ちます。

 
以上



AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com