このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.keras.preprocessing.image.ImageDataGenerator

TensorFlow 1つのバージョン GitHubの上のソースを表示

リアルタイムデータの増強とテンソル画像データのバッチを生成します。

ノートPCで使用されます

ガイドで使用チュートリアルで使用されます

データは、(バッチで)を超えるループされます。

featurewise_center ブール。データセットの上に0に設定された入力平均、機能単位。
samplewise_center ブール。 0に、各サンプルの平均値を設定します。
featurewise_std_normalization ブール。データセットのSTDで割る入力、機能単位。
samplewise_std_normalization ブール。そのSTDによって、各入力を分割します。
zca_epsilon ZCA美白用イプシロン。デフォルトは1E-6です。
zca_whitening ブール。 ZCAホワイトニングを適用します。
rotation_range int型。ランダムな回転のための学位範囲。
width_shift_range フロート、1-Dアレイ状またはINT

  • フロート:全幅のフラクション= 1 <1の場合、すなわち画素>もし。
  • 1-Dアレイ状:アレイからランダム要素。
  • INT:インターバルからのピクセルの整数(-width_shift_range, +width_shift_range)
  • width_shift_range=2の可能な値は整数である[-1, 0, +1]と同様、 width_shift_range=[-1, 0, +1]としながら、 width_shift_range=1.0の可能な値は、+、-1.0 [インターバル中に浮遊しています1.0)。
height_shift_range フロート、1-Dアレイ状またはINT
  • フロート:全高のフラクション= 1 <1の場合、すなわち画素>もし。
  • 1-Dアレイ状:アレイからランダム要素。
  • INT:インターバルからのピクセルの整数(-height_shift_range, +height_shift_range)
  • height_shift_range=2可能な値は整数である[-1, 0, +1]と同様、 height_shift_range=[-1, 0, +1]としながら、 height_shift_range=1.0の可能な値は、+、-1.0 [インターバル中に浮遊しています1.0)。
  • brightness_range タプルまたは2つのfloatのリスト。から輝度シフト値を選ぶための範囲。
    shear_range 浮く。剪断強度(度反時計方向に剪断角度)
    zoom_range フロートまたは[上下]。ランダムズームのための範囲。フロート場合、 [lower, upper] = [1-zoom_range, 1+zoom_range]
    channel_shift_range 浮く。ランダムチャネルシフトの範囲。
    fill_mode 一つ{「定数」、「最も近い」とは、「ラップ」を「反映」又は}。デフォルトは「最も近い」です。入力の境界の外側にポイントが与えられたモードに応じて満たされています。
  • '定数':kkkkkkkk | ABCD | kkkkkkkk(CVAL = K)
  • '最寄り':AAAAAAAA | ABCD | DDDDDDDD
  • '反映':abcddcba | ABCD | dcbaabcdを
  • 'ラップ':たとえばABCDABCD | ABCD |たとえばABCDABCD
  • cval floatまたはintです。境界の外側のポイントのために使用される値際fill_mode = "constant"
    horizontal_flip ブール。ランダムに水平に入力を反転させます。
    vertical_flip ブール。ランダムに縦方向に入力を反転させます。
    rescale 要因を再スケーリング。デフォルトはnone。 Noneまたは0が、全く再スケーリングが適用されない場合は、そうでなければ、乗算値によってデータが(他のすべての変換を適用した後)を得ました。
    preprocessing_function 各入力に適用される関数。画像のサイズを変更し、強化された後、関数が実行されます。一方の画像(ランク3とnumpyのテンソル)、そしてべき同じ形状の出力numpyのテンソルを:関数は、1つの引数を取るべきです。
    data_format 画像データフォーマット、いずれかの「channels_first」または「channels_last」。画像は形状持つべき「channels_last」モード手段は(samples, height, width, channels) 、画像の形状を有していなければならないこと「channels_first」モード手段(samples, channels, height, width) 。これはデフォルトimage_data_format値がであなたのKerasの設定ファイルで見つかった~/.keras/keras.json 。あなたがそれを設定しない場合、それは「channels_last」になります。
    validation_split 浮く。 (厳密には0と1の間)の検証のために予約画像の画分。
    dtype DTYPEは、生成された配列に使用します。

    例:

    使用例.flow(x, y)

     (x_train, y_train), (x_test, y_test) = cifar10.load_data()
    y_train = np_utils.to_categorical(y_train, num_classes)
    y_test = np_utils.to_categorical(y_test, num_classes)
    datagen = ImageDataGenerator(
        featurewise_center=True,
        featurewise_std_normalization=True,
        rotation_range=20,
        width_shift_range=0.2,
        height_shift_range=0.2,
        horizontal_flip=True)
    # compute quantities required for featurewise normalization
    # (std, mean, and principal components if ZCA whitening is applied)
    datagen.fit(x_train)
    # fits the model on batches with real-time data augmentation:
    model.fit(datagen.flow(x_train, y_train, batch_size=32),
              steps_per_epoch=len(x_train) / 32, epochs=epochs)
    # here's a more "manual" example
    for e in range(epochs):
        print('Epoch', e)
        batches = 0
        for x_batch, y_batch in datagen.flow(x_train, y_train, batch_size=32):
            model.fit(x_batch, y_batch)
            batches += 1
            if batches >= len(x_train) / 32:
                # we need to break the loop by hand because
                # the generator loops indefinitely
                break
     

    使用例.flow_from_directory(directory)

     train_datagen = ImageDataGenerator(
            rescale=1./255,
            shear_range=0.2,
            zoom_range=0.2,
            horizontal_flip=True)
    test_datagen = ImageDataGenerator(rescale=1./255)
    train_generator = train_datagen.flow_from_directory(
            'data/train',
            target_size=(150, 150),
            batch_size=32,
            class_mode='binary')
    validation_generator = test_datagen.flow_from_directory(
            'data/validation',
            target_size=(150, 150),
            batch_size=32,
            class_mode='binary')
    model.fit(
            train_generator,
            steps_per_epoch=2000,
            epochs=50,
            validation_data=validation_generator,
            validation_steps=800)
     

    一緒に画像とマスクを変換する例。

     # we create two instances with the same arguments
    data_gen_args = dict(featurewise_center=True,
                         featurewise_std_normalization=True,
                         rotation_range=90,
                         width_shift_range=0.1,
                         height_shift_range=0.1,
                         zoom_range=0.2)
    image_datagen = ImageDataGenerator(**data_gen_args)
    mask_datagen = ImageDataGenerator(**data_gen_args)
    # Provide the same seed and keyword arguments to the fit and flow methods
    seed = 1
    image_datagen.fit(images, augment=True, seed=seed)
    mask_datagen.fit(masks, augment=True, seed=seed)
    image_generator = image_datagen.flow_from_directory(
        'data/images',
        class_mode=None,
        seed=seed)
    mask_generator = mask_datagen.flow_from_directory(
        'data/masks',
        class_mode=None,
        seed=seed)
    # combine generators into one which yields image and masks
    train_generator = zip(image_generator, mask_generator)
    model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50)
     

    メソッド

    apply_transform

    与えられたパラメータに応じた画像に変換を適用します。

    引数

     x: 3D tensor, single image.
    transform_parameters: Dictionary with string - parameter pairs
        describing the transformation.
        Currently, the following parameters
        from the dictionary are used:
    
        - `'theta'`: Float. Rotation angle in degrees.
        - `'tx'`: Float. Shift in the x direction.
        - `'ty'`: Float. Shift in the y direction.
        - `'shear'`: Float. Shear angle in degrees.
        - `'zx'`: Float. Zoom in the x direction.
        - `'zy'`: Float. Zoom in the y direction.
        - `'flip_horizontal'`: Boolean. Horizontal flip.
        - `'flip_vertical'`: Boolean. Vertical flip.
        - `'channel_shift_intensity'`: Float. Channel shift intensity.
        - `'brightness'`: Float. Brightness shift intensity.
     

    戻り値

     A transformed version of the input (same shape).
     

    fit

    いくつかのサンプルデータをデータ生成器に適合します。

    これは、サンプルデータの配列に基づいて、データ依存型の変換に関連する内部データの統計情報を計算します。

    場合にのみ必要featurewise_centerまたはfeaturewise_std_normalizationまたはzca_whitening Trueに設定されています。

    場合rescale値に設定され、再スケーリングは、内部データの統計を計算する前にサンプルデータに適用されます。

    引数

     x: Sample data. Should have rank 4.
     In case of grayscale data,
     the channels axis should have value 1, in case
     of RGB data, it should have value 3, and in case
     of RGBA data, it should have value 4.
    augment: Boolean (default: False).
        Whether to fit on randomly augmented samples.
    rounds: Int (default: 1).
        If using data augmentation (`augment=True`),
        this is how many augmentation passes over the data to use.
    seed: Int (default: None). Random seed.
     

    flow

    ソースを表示

    増強データのバッチを生成し、データ&ラベルの配列をとります。

    引数
    x 入力したデータ。ランク4またはタプルのnumpyのアレイ。タプルの場合、最初の要素は、画像及び第二の要素別のnumpyの配列または任意の変更なしに出力へ渡されるnumpyの配列のリストを含むべきです。画像とともにモデル雑多なデータを供給するために使用することができます。階調データの場合には、チャネルが値1を有するべき画像アレイ軸、RGBデータの場合には、値3を有していなければならない、とRGBAデータの場合には、値4を有するべきです。
    y ラベル。
    batch_size INT(デフォルト:32)。
    shuffle ブール(デフォルト:true)。
    sample_weight サンプルの重み。
    seed INT(デフォルト:なし)。
    save_to_dir なしまたはSTR(デフォルト:なし)。これは、必要に応じて(あなたが何をしているかを視覚化するのに便利)が生成された拡張画像を保存するためにディレクトリを指定することができます。
    save_prefix STR(デフォルト: ''プレフィックス(場合にのみ適用保存された画像のファイル名に使用するsave_to_dir設定されています)。
    save_format 「PNG」の一つ、(場合にのみ関連する「JPEG」 save_to_dir設定されています)。デフォルト: "PNG"。
    subset データのサブセット( "training""validation" )場合validation_splitに設定されているImageDataGenerator

    戻り値
    AN Iteratorのタプル得(x, y) x (追加の入力を持つ場合)(単一の画像入力の場合)、画像データのnumpyのアレイまたはnumpyの配列のリストであり、およびyのnumpyのアレイであります対応するラベル。 'sample_weight'がNoneでない場合、得られたタプルの形式である(x, y, sample_weight)場合はy Noneで、唯一のnumpyの配列x返されます。

    flow_from_dataframe

    ソースを表示

    データフレームと+は、バッチを生成したディレクトリへのパスを取ります。

    生成されたバッチは、拡張/正規化されたデータを含みます。

    **簡単なチュートリアルでは、**見つけることができるここに

    引数
    dataframe ファイルパスを含むデータフレームパンダdirectory (場合は絶対パスdirectory文字列の列の画像はいずれもありません)。これは、/に応じsの他の列を含める必要がありclass_mode場合- : class_modeある"categorical" (デフォルト値)が含まれている必要がありy_col各画像のクラス/ ESでカラムを。単一のクラスまたはリスト/タプル場合は、列の値は、複数のクラスならば、文字列/リスト/タプルことができます。 -場合class_modeある"binary"または"sparse"は、所与含まなければならないy_col文字列としてクラス値の列を。 -場合class_modeある"raw"または"multi_output"それが列に指定された含まれている必要がありy_col 。 -場合class_modeある"input"またはNone余分な列は必要ありません。
    directory 文字列から画像を読み取るためのディレクトリへのパス。場合はNone 、でのデータx_col列には、絶対パスでなければなりません。
    x_col 列の列dataframe (場合は絶対パスのファイル名が含まれているdirectoryありませんNone )。
    y_col 文字列またはリスト、列には、/ sの中でdataframeのターゲットデータを持っています。
    weight_col 文字列、中列dataframeのサンプルの重みが含まれています。デフォルトなし: None
    target_size 整数のタプル(height, width) 、デフォルト: (256, 256)すべての画像が見つかった寸法が変更されます。
    color_mode "グレースケール"、 "RGB"、 "RGBA" の一つ。デフォルト: "RGB"。画像は1つの又は3カラーチャネルを有するように変換されるかどうか。
    classes クラスのオプションのリスト(例えば['dogs', 'cats']デフォルトはNoneです。提供されない場合は、クラスのリストを自動的に推測されますy_col )英数字となり、ラベルインデックスにマッピングします。クラスインデックスにクラス名からマッピングを含む辞書は、属性を介して取得することができるclass_indices
    class_mode ターゲットをもたらすためのカテゴリ 『モード:「バイナリ」、「カテゴリ」、「入力」、「multi_output」、「生」、疎」またはなしデフォルト』のいずれか

    • "binary" :バイナリラベルの1D numpyのアレイ、
    • "categorical" :ワンホットエンコードされたラベルの2D numpyのアレイ。マルチラベル出力をサポートします。
    • "input" :入力画像と同じ画像が(主にオートエンコーダで動作するように使用されます)、
    • "multi_output" :異なる列の値を持つリスト、
    • "raw" :の値のnumpyのアレイy_colカラム(複数可)、
    • "sparse" :整数ラベルの1D numpyの配列、 - None 、全くターゲットは(発電機のみで使用することが有用であり、画像データのバッチをもたらす返されないmodel.predict_generator()
    batch_size データのバッチのサイズ(デフォルト:32)。
    shuffle かどうかのデータをシャッフルする(デフォルト:true)
    seed シャッフルや変換のための任意のランダムシード。
    save_to_dir なしまたはSTR(デフォルト:なし)。これは、必要に応じて(あなたが何をしているかを視覚化するのに便利)が生成された拡張画像を保存するためにディレクトリを指定することができます。
    save_prefix STR。プレフィックス(場合にのみ適用保存された画像のファイル名に使用するsave_to_dir設定されています)。
    save_format 「PNG」の一つ、(場合にのみ関連する「JPEG」 save_to_dir設定されています)。デフォルト: "PNG"。
    subset データのサブセット( "training""validation" )場合validation_splitに設定されているImageDataGenerator
    interpolation ターゲットサイズがロードされたイメージと異なる場合、補間方法は、画像をリサンプリングするために使用されます。サポートされている方法があり"nearest""bilinear" 、および"bicubic" 。 PILのバージョン1.1.3以降がインストールされている場合は、 "lanczos"もサポートされています。 PILのバージョン3.4.0以降がインストールされている場合は、 "box""hamming"もサポートされています。デフォルトでは、 "nearest"使用されています。
    validate_filenames ブール、かどうかで検証画像のファイル名にx_col 。場合True 、無効なイメージが無視されます。このオプションを無効にすると、この関数の実行におけるスピードアップにつながることができます。デフォルトはTrue
    **kwargs 非推奨の警告を上げるため、従来の引数。

    戻り値
    A DataFrameIteratorのタプル得(x, y) x形状の画像のバッチを含むnumpyの配列である(batch_size, *target_size, channels)及びy対応するラベルのnumpyの配列です。

    flow_from_directory

    ソースを表示

    ディレクトリへのパスを取る&増補データのバッチを生成します。

    引数
    directory 文字列、ターゲットディレクトリへのパス。これは、クラスごとにサブディレクトリが含まれている必要があります。サブディレクトリのディレクトリツリーの各内部どれPNG、JPG、BMP、PPMまたはTIF画像が発電機に含まれます。参照してください。 このスクリプトを詳細については。
    target_size 整数の組(height, width) 、デフォルト(256, 256)すべての画像が見つかった寸法が変更されます。
    color_mode "グレースケール"、 "RGB"、 "RGBA" の一つ。デフォルト: "RGB"。画像は1、3、または4チャネルを有するように変換されるかどうか。
    classes クラスのサブディレクトリのオプションリスト(例えば['dogs', 'cats']デフォルト:なし。提供されない場合は、クラスのリストが自動的に下にサブディレクトリ名/構造から推測されるdirectoryラベルインデックスにマッピングされ、各サブディレクトリは、異なるクラス(およびクラスの順序として扱われ、英数字であろう)。クラスインデックスにクラス名からマッピングを含む辞書は、属性を介して取得することができるclass_indices
    class_mode 「カテゴリ」、「バイナリー」、「スパース」、「入力」、またはNoneの一つ。デフォルト:「カテゴリ」。返されたラベル列のタイプが決定: - 2Dワンホットエンコードされたラベルであろう「カテゴリ」 - 「入力」とは、同一の画像であろう - 「バイナリ」1Dバイナリラベルになり、「疎」のラベル、整数1Dになります入力画像に(主にオートエンコーダで動作するように使用されます)。 -なし場合、ラベルは(発電機のみで使用することが有用であり、画像データのバッチをもたらす返されないmodel.predict_generator() class_modeなしの場合には、データがまだのサブディレクトリに存在する必要があるとしてくださいは、ノートdirectory 、それが正しく動作するために。
    batch_size データのバッチのサイズ(デフォルト:32)。
    shuffle かどうかのデータ(デフォルト:true)をシャッフルするように設定した場合はFalseに、アルファベット順にデータをソートします。
    seed シャッフリングおよび変換のオプションランダムシード。
    save_to_dir なしまたはSTR(デフォルト:なし)。これは、必要に応じて(あなたが何をしているかを視覚化するのに便利)が生成された拡張画像を保存するためにディレクトリを指定することができます。
    save_prefix STR。プレフィックス(場合にのみ適用保存された画像のファイル名に使用するsave_to_dir設定されています)。
    save_format 「PNG」の一つ、「JPEG」(場合にのみ適用save_to_dir設定されています)。デフォルト: "PNG"。
    follow_links クラスのサブディレクトリ内のシンボリックリンクをたどるするかどうか(デフォルト:false)。
    subset データのサブセット( "training""validation" )場合validation_splitに設定されているImageDataGenerator
    interpolation ターゲットサイズがロードされたイメージと異なる場合、補間方法は、画像をリサンプリングするために使用されます。サポートされている方法があり"nearest""bilinear" 、および"bicubic" 。 PILのバージョン1.1.3以降がインストールされている場合は、 "lanczos"もサポートされています。 PILのバージョン3.4.0以降がインストールされている場合は、 "box""hamming"もサポートされています。デフォルトでは、 "nearest"使用されています。

    戻り値
    A DirectoryIteratorのタプル得(x, y) x形状の画像のバッチを含むnumpyの配列である(batch_size, *target_size, channels)及びy対応するラベルのnumpyの配列です。

    get_random_transform

    変換のためのランダムパラメータを生成します。

    引数

     seed: Random seed.
    img_shape: Tuple of integers.
        Shape of the image that is transformed.
     

    戻り値

     A dictionary containing randomly chosen parameters describing the
    transformation.
     

    random_transform

    画像のランダム変換を適用します。

    引数

     x: 3D tensor, single image.
    seed: Random seed.
     

    戻り値

     A randomly transformed version of the input (same shape).
     

    standardize

    入力のバッチにインプレース正規化の設定を適用します。

    x関数が主に画像を標準化し、ネットワークにそれらを供給するために内部的に使用されているのでその場で変更されました。コピーした場合x作成される代わりに、パフォーマンスが大幅にコストを持っているでしょう。あなたはその場で入力を変更せずにこの方法を適用したい場合には、前にコピーを作成するメソッドを呼び出すことができます。

    標準化(np.copy(X))

    引数

     x: Batch of inputs to be normalized.
     

    戻り値

     The inputs, normalized.