renom_img.api.segmentation

class FCN16s ( class_map=None , train_final_upscore=False , imsize=(224 , 224) , load_pretrained_weight=False , train_whole_network=False )

ベースクラス: renom_img.api.segmentation.SemanticSegmentation

セマンティックセグメンテーション用の全畳み込みネットワーク(16s)

パラメータ:
  • class_map ( list , dict ) -- クラス名の配列
  • train_final_upscore ( bool ) -- 最後のアップサンプル層を学習する場合はTrue、さもなければFalse
  • imsize ( int , tuple ) -- 入力の画像サイズ
  • load_pretrained_weight ( bool , str ) -- 事前学習済みの重みを利用する場合はTrue、さもなければFalse
  • train_whole_network ( bool ) -- モデル全体の学習を行う場合はTrue、さもなければFalse

>>> from renom_img.api.segmentation.fcn import FCN16s
>>>
>>> class_map = ['cat', 'dog']
>>> model = FCN16s(class_map, train_final_upscore=False, imsize=(224,224), load_pretrained_weight=True, train_whole_network=True)

参照

Jonathan Long, Evan Shelhamer, Trevor Darrell
セマンティックセグメンテーション用の全畳み込みネットワーク

fit ( train_img_path_list=None , train_annotation_list=None , valid_img_path_list=None , valid_annotation_list=None , epoch=136 , batch_size=64 , optimizer=None , augmentation=None , callback_end_epoch=None , class_weight=None )

この関数は与えられたデータとパラメータをもとに、モデルの学習を行います。

パラメータ:
  • train_img_path_list ( list ) -- 画像ファイルのパスのリスト
  • train_annotation_list ( list ) -- アノテーションファイルのパスのリスト
  • valid_img_path_list ( list ) -- バリデーション用の画像パスのリスト
  • valid_annotation_list ( list ) -- バリデーション用のアノテーションファイルのパスリスト
  • epoch ( int ) -- 学習エポック数
  • batch_size ( int ) -- バッチサイズ
  • augmentation ( Augmentation ) -- Augmentationオブジェクト
  • callback_end_epoch ( function ) -- 与えられた関数が各エポックの最後に呼ばれます
戻り値:

学習誤差とバリデーション誤差のリスト

戻り値の型:

(tuple)

>>> train_img_path_list, train_annot_list = ... # Define train data
>>> valid_img_path_list, valid_annot_list = ... # Define validation data
>>> class_map = ... # Define class map
>>> model = FCN16s(class_map) # Specify any algorithm provided by ReNomIMG API here
>>> model.fit(
...     # Feeds image and annotation data
...     train_img_path_list,
...     train_annot_list,
...     valid_img_path_list,
...     valid_annot_list,
...     epoch=8,
...     batch_size=8)
>>>

以下の引数が callback_end_epoch に与えられます。

  • epoch (int) - 現在のエポック数
  • model (Model) - モデルオブジェクト
  • avg_train_loss_list (list) - 各エポックの学習誤差の平均のリスト
  • avg_valid_loss_list (list) - 各エポックのバリデーション誤差の平均のリスト
forward ( x )

順伝播を行います。これは __call__ 関数によって呼ばれます。

パラメータ: x ( ndarray , Node ) -- FCN16sに対する入力
戻り値: FCN16sの生の出力を返します。
戻り値の型: (Node)

>>> import numpy as np
>>> x = np.random.rand(1, 3, 224, 224)
>>>
>>> class_map = ["dog", "cat"]
>>> model = FCN16s(class_map)
>>>
>>> y = model.forward(x) # Forward propagation.
>>> y = model(x)  # Same as above result.
loss ( x , y , class_weight=None )

FCN16sで指定された損失関数

パラメータ:
  • x ( ndarray , Node ) -- ニューラルネッチワークの出力データ
  • y ( ndarray , Node ) -- 教師データ
戻り値:

xとy間の損失

戻り値の型:

(Node)

predict ( img_list , batch_size=1 )
戻り値: 一枚の画像もしくは画像のパスが与えられた場合、 (幅、高さ) の形のarrayが返されます。複数の画像もしくは画像のパスが与えられた場合は、 (幅、高さ) の形のarrayが入ったリストが返されます。
戻り値の型: (Numpy.array or list)
preprocess ( x )

与えられたarrayに対して前処理を行います。

パラメータ: x ( ndarray , Node ) -- 前処理を行うための画像のarray
regularize ( )

損失関数に追加する正則化項

>>> x = numpy.random.rand(1, 3, 224, 224)  # Input image
>>> y = ...  # Ground-truth label
>>>
>>> class_map = ['cat', 'dog']
>>> model = FCN16s(class_map)
>>>
>>> z = model(x)  # Forward propagation
>>> loss = model.loss(z, y)  # Loss calculation
>>> reg_loss = loss + model.regularize()  # Add weight decay term.
class FCN32s ( class_map=None , train_final_upscore=False , imsize=(224 , 224) , load_pretrained_weight=False , train_whole_network=False )

ベースクラス: renom_img.api.segmentation.SemanticSegmentation

セマンティックセグメンテーション用の全畳み込みネットワーク(32s)

パラメータ:
  • class_map ( list , dict ) -- クラス名の配列
  • train_final_upscore ( bool ) -- 最後のアップサンプル層を学習する場合はTrue、さもなければFalse
  • imsize ( int , tuple ) -- 入力の画像サイズ
  • load_pretrained_weight ( bool , str ) -- 事前学習済みの重みを利用する場合はTrue、さもなければFalse
  • train_whole_network ( bool ) -- モデル全体の学習を行う場合はTrue、さもなければFalse

>>> from renom_img.api.segmentation.fcn import FCN32s
>>>
>>> class_map = ['cat', 'dog']
>>> model = FCN32s(class_map, train_final_upscore=False, imsize=(224,224), load_pretrained_weight=True, train_whole_network=True)

参照

Jonathan Long, Evan Shelhamer, Trevor Darrell
セマンティックセグメンテーション用の全畳み込みネットワーク

fit ( train_img_path_list=None , train_annotation_list=None , valid_img_path_list=None , valid_annotation_list=None , epoch=136 , batch_size=64 , optimizer=None , augmentation=None , callback_end_epoch=None , class_weight=None )

この関数は与えられたデータとパラメータをもとに、モデルの学習を行います。

パラメータ:
  • train_img_path_list ( list ) -- 画像ファイルのパスのリスト
  • train_annotation_list ( list ) -- アノテーションファイルのパスのリスト
  • valid_img_path_list ( list ) -- バリデーション用の画像パスのリスト
  • valid_annotation_list ( list ) -- バリデーション用のアノテーションファイルのパスリスト
  • epoch ( int ) -- 学習エポック数
  • batch_size ( int ) -- バッチサイズ
  • augmentation ( Augmentation ) -- Augmentationオブジェクト
  • callback_end_epoch ( function ) -- 与えられた関数が各エポックの最後に呼ばれます
戻り値:

学習誤差とバリデーション誤差のリスト

戻り値の型:

(tuple)

>>> train_img_path_list, train_annot_list = ... # Define train data
>>> valid_img_path_list, valid_annot_list = ... # Define validation data
>>> class_map = ... # Define class map
>>> model = FCN32s(class_map) # Specify any algorithm provided by ReNomIMG API here
>>> model.fit(
...     # Feeds image and annotation data
...     train_img_path_list,
...     train_annot_list,
...     valid_img_path_list,
...     valid_annot_list,
...     epoch=8,
...     batch_size=8)
>>>

以下の引数が callback_end_epoch に与えられます。

  • epoch (int) - 現在のエポック数
  • model (Model) - モデルオブジェクト
  • avg_train_loss_list (list) - 各エポックの学習誤差の平均のリスト
  • avg_valid_loss_list (list) - 各エポックのバリデーション誤差の平均のリスト
forward ( x )

順伝播を行います。これは __call__ 関数によって呼ばれます。

パラメータ: x ( ndarray , Node ) -- FCN32sに対する入力
戻り値: FCN32sの生の出力を返します。
戻り値の型: (Node)

>>> import numpy as np
>>> x = np.random.rand(1, 3, 224, 224)
>>>
>>> class_map = ["dog", "cat"]
>>> model = FCN32s(class_map)
>>>
>>> y = model.forward(x) # Forward propagation.
>>> y = model(x)  # Same as above result.
loss ( x , y , class_weight=None )

FCN32sの損失関数

パラメータ:
  • x ( ndarray , Node ) -- ニューラルネッチワークの出力データ
  • y ( ndarray , Node ) -- 教師データ
戻り値:

xとy間の損失

戻り値の型:

(Node)

predict ( img_list , batch_size=1 )
戻り値: 一枚の画像もしくは画像のパスが与えられた場合、 (幅、高さ) の形のarrayが返されます。複数の画像もしくは画像のパスが与えられた場合は、 (幅、高さ) の形のarrayが入ったリストが返されます。
戻り値の型: (Numpy.array or list)
preprocess ( x )

与えられたarrayに対して前処理を行います。

パラメータ: x ( ndarray , Node ) -- 前処理を行うための画像のarray
regularize ( )

損失関数に追加する正則化項

>>> x = numpy.random.rand(1, 3, 224, 224)  # Input image
>>> y = ...  # Ground-truth label
>>>
>>> class_map = ['cat', 'dog']
>>> model = FCN32s(class_map)
>>>
>>> z = model(x)  # Forward propagation
>>> loss = model.loss(z, y)  # Loss calculation
>>> reg_loss = loss + model.regularize()  # Add weight decay term.
class FCN8s ( class_map=None , train_final_upscore=False , imsize=(224 , 224) , load_pretrained_weight=False , train_whole_network=False )

ベースクラス: renom_img.api.segmentation.SemanticSegmentation

セマンティックセグメンテーション用の全畳み込みネットワーク(8s)

パラメータ:
  • class_map ( list , dict ) -- クラス名の配列
  • train_final_upscore ( bool ) -- 最後のアップサンプル層を学習する場合はTrue、さもなければFalse
  • imsize ( int , tuple ) -- 入力の画像サイズ
  • load_pretrained_weight ( bool , str ) -- 事前学習済みの重みを利用する場合はTrue、さもなければFalse
  • train_whole_network ( bool ) -- モデル全体の学習を行う場合はTrue、さもなければFalse

>>> from renom_img.api.segmentation.fcn import FCN8s
>>>
>>> class_map = ['cat', 'dog']
>>> model = FCN8s(class_map, train_final_upscore=False, imsize=(224,224), load_pretrained_weight=True, train_whole_network=True)

参照

Jonathan Long, Evan Shelhamer, Trevor Darrell
セマンティックセグメンテーション用の全畳み込みネットワーク

fit ( train_img_path_list=None , train_annotation_list=None , valid_img_path_list=None , valid_annotation_list=None , epoch=136 , batch_size=64 , optimizer=None , augmentation=None , callback_end_epoch=None , class_weight=None )

この関数は与えられたデータとパラメータをもとに、モデルの学習を行います。

パラメータ:
  • train_img_path_list ( list ) -- 画像ファイルのパスのリスト
  • train_annotation_list ( list ) -- アノテーションファイルのパスのリスト
  • valid_img_path_list ( list ) -- バリデーション用の画像パスのリスト
  • valid_annotation_list ( list ) -- バリデーション用のアノテーションファイルのパスリスト
  • epoch ( int ) -- 学習エポック数
  • batch_size ( int ) -- バッチサイズ
  • augmentation ( Augmentation ) -- Augmentationオブジェクト
  • callback_end_epoch ( function ) -- 与えられた関数が各エポックの最後に呼ばれます
戻り値:

学習誤差とバリデーション誤差のリスト

戻り値の型:

(tuple)

>>> train_img_path_list, train_annot_list = ... # Define train data
>>> valid_img_path_list, valid_annot_list = ... # Define validation data
>>> class_map = ... # Define class map
>>> model = FCN8s(class_map) # Specify any algorithm provided by ReNomIMG API here
>>> model.fit(
...     # Feeds image and annotation data
...     train_img_path_list,
...     train_annot_list,
...     valid_img_path_list,
...     valid_annot_list,
...     epoch=8,
...     batch_size=8)
>>>

以下の引数が callback_end_epoch に与えられます。

  • epoch (int) - 現在のエポック数
  • model (Model) - モデルオブジェクト
  • avg_train_loss_list (list) - 各エポックの学習誤差の平均のリスト
  • avg_valid_loss_list (list) - 各エポックのバリデーション誤差の平均のリスト
forward ( x )

順伝播を行います。これは __call__ 関数によって呼ばれます。

パラメータ: x ( ndarray , Node ) -- FCN8sに対する入力
戻り値: FCN8sの生の出力を返します。
戻り値の型: (Node)

>>> import numpy as np
>>> x = np.random.rand(1, 3, 224, 224)
>>>
>>> class_map = ["dog", "cat"]
>>> model = FCN8s(class_map)
>>>
>>> y = model.forward(x) # Forward propagation.
>>> y = model(x)  # Same as above result.
loss ( x , y , class_weight=None )

FCN8sの損失関数

パラメータ:
  • x ( ndarray , Node ) -- ニューラルネッチワークの出力データ
  • y ( ndarray , Node ) -- 教師データ
戻り値:

xとy間の損失

戻り値の型:

(Node)

predict ( img_list , batch_size=1 )
戻り値: 一枚の画像もしくは画像のパスが与えられた場合、 (幅、高さ) の形のarrayが返されます。複数の画像もしくは画像のパスが与えられた場合は、 (幅、高さ) の形のarrayが入ったリストが返されます。
戻り値の型: (Numpy.array or list)
preprocess ( x )

与えられたarrayに対して前処理を行います。

パラメータ: x ( ndarray , Node ) -- 前処理を行うための画像のarray
regularize ( )

損失関数に追加する正則化項

>>> x = numpy.random.rand(1, 3, 224, 224)  # Input image
>>> y = ...  # Ground-truth label
>>>
>>> class_map = ['cat', 'dog']
>>> model = FCN8s(class_map)
>>>
>>> z = model(x)  # Forward propagation
>>> loss = model.loss(z, y)  # Loss calculation
>>> reg_loss = loss + model.regularize()  # Add weight decay term.
class UNet ( class_map=None , imsize=(388 , 388) , load_pretrained_weight=False , train_whole_network=True , use_mirror_padding=True )

ベースクラス: renom_img.api.segmentation.SemanticSegmentation

U-Net: 画像セグメンテーションに用いられる畳込みニューラルネットワーク.

パラメータ:
  • class_map ( list , dict ) -- クラス名の配列
  • imsize ( int , tuple ) -- Input image size. Width and Height must be 16*x + 4 pixels, where x is in integer, and must be between 64 and 1028 pixels. Default is (388, 388).
  • load_pretrained_weight ( bool , str ) -- 事前学習済みの重みを使用するかどうかを指定します。U-Netには事前学習済みの重みが用意されていないため、Falseに設定するか、ユーザが自分で学習した重みのファイル名へのパスを指定します。
  • train_whole_network ( bool ) -- モデル全体の学習を行う場合はTrue、さもなければFalse
  • use_mirror_padding ( bool ) -- Flag specifying whether to pad input image with mirror padding. If true, pads input with mirror padding so that model output shape matches input shape. If false, output shape will be smaller than input shape. Default is true.

>>> from renom_img.api.segmentation.unet import UNet
>>>
>>> class_map = ['background', 'object']
>>> model = UNet(class_map, imsize=(388,388), load_pretrained_weight=False, train_whole_network=True)

参照

Olaf Ronneberger, Philipp Fischer, Thomas Brox
セマンティックセグメンテーション用の全畳み込みネットワーク

fit ( train_img_path_list=None , train_annotation_list=None , valid_img_path_list=None , valid_annotation_list=None , epoch=136 , batch_size=64 , optimizer=None , augmentation=None , callback_end_epoch=None , class_weight=None )

この関数は与えられたデータとパラメータをもとに、モデルの学習を行います。

パラメータ:
  • train_img_path_list ( list ) -- 画像ファイルのパスのリスト
  • train_annotation_list ( list ) -- アノテーションファイルのパスのリスト
  • valid_img_path_list ( list ) -- バリデーション用の画像パスのリスト
  • valid_annotation_list ( list ) -- バリデーション用のアノテーションファイルのパスリスト
  • epoch ( int ) -- 学習エポック数
  • batch_size ( int ) -- バッチサイズ
  • augmentation ( Augmentation ) -- Augmentationオブジェクト
  • callback_end_epoch ( function ) -- 与えられた関数が各エポックの最後に呼ばれます
戻り値:

学習誤差とバリデーション誤差のリスト

戻り値の型:

(tuple)

>>> train_img_path_list, train_annot_list = ... # Define train data
>>> valid_img_path_list, valid_annot_list = ... # Define validation data
>>> class_map = ... # Define class map
>>> model = UNet(class_map) # Specify any algorithm provided by ReNomIMG API here
>>> model.fit(
...     # Feeds image and annotation data
...     train_img_path_list,
...     train_annot_list,
...     valid_img_path_list,
...     valid_annot_list,
...     epoch=8,
...     batch_size=8)
>>>

以下の引数が callback_end_epoch に与えられます。

  • epoch (int) - 現在のエポック数
  • model (Model) - モデルオブジェクト
  • avg_train_loss_list (list) - 各エポックの学習誤差の平均のリスト
  • avg_valid_loss_list (list) - 各エポックのバリデーション誤差の平均のリスト
forward ( x )

順伝播を行います。これは __call__ 関数によって呼ばれます。

パラメータ: x ( ndarray , Node ) -- U-Netに対する入力
戻り値: UNetの生の出力を返します。
戻り値の型: (Node)

>>> import numpy as np
>>> x = np.random.rand(1, 3, 224, 224)
>>>
>>> class_map = ["dog", "cat"]
>>> model = UNet(class_map)
>>>
>>> y = model.forward(x) # Forward propagation.
>>> y = model(x)  # Same as above result.
loss ( x , y , class_weight=None )

U-Netの損失関数

パラメータ:
  • x ( ndarray , Node ) -- ニューラルネッチワークの出力データ
  • y ( ndarray , Node ) -- 教師データ
戻り値:

xとy間の損失

戻り値の型:

(Node)

predict ( img_list , batch_size=1 )
戻り値: 一枚の画像もしくは画像のパスが与えられた場合、 (幅、高さ) の形のarrayが返されます。複数の画像もしくは画像のパスが与えられた場合は、 (幅、高さ) の形のarrayが入ったリストが返されます。
戻り値の型: (Numpy.array or list)
preprocess ( x )

与えられたarrayに対して前処理を行います。

パラメータ: x ( ndarray , Node ) -- 前処理を行うための画像のarray
regularize ( )

損失関数に追加する正則化項

>>> x = numpy.random.rand(1, 3, 224, 224)  # Input image
>>> y = ...  # Ground-truth label
>>>
>>> class_map = ['cat', 'dog']
>>> model = UNet(class_map)
>>>
>>> z = model(x)  # Forward propagation
>>> loss = model.loss(z, y)  # Loss calculation
>>> reg_loss = loss + model.regularize()  # Add weight decay term.
class TernausNet ( class_map=None , imsize=(224 , 224) , load_pretrained_weight=False , train_whole_network=False )

ベースクラス: renom_img.api.segmentation.SemanticSegmentation

TernausNet: ImageNetデータセットで事前学習されたVGG11 エンコーダを搭載したU-Net.

パラメータ:
  • class_map ( list , dict ) -- クラス名の配列
  • imsize ( int , tuple ) -- 入力の画像サイズ
  • load_pretrained_weight ( bool , str ) -- 事前学習済みの重みを利用する場合はTrue、さもなければFalse
  • train_whole_network ( bool ) -- モデル全体の学習を行う場合はTrue、さもなければFalse

>>> from renom_img.api.segmentation.ternausnet import TernausNet
>>>
>>> class_map = ['background', 'object']
>>> model = TernausNet(class_map, imsize=(224,224), load_pretrained_weight=True, train_whole_network=True)

参照

Vladimir Iglovikov, Alexey Shvets
TernausNet: ImageNetデータセットで事前学習されたVGG11 エンコーダを搭載したU-Net.

fit ( train_img_path_list=None , train_annotation_list=None , valid_img_path_list=None , valid_annotation_list=None , epoch=136 , batch_size=64 , optimizer=None , augmentation=None , callback_end_epoch=None , class_weight=None )

この関数は与えられたデータとパラメータをもとに、モデルの学習を行います。

パラメータ:
  • train_img_path_list ( list ) -- 画像ファイルのパスのリスト
  • train_annotation_list ( list ) -- アノテーションファイルのパスのリスト
  • valid_img_path_list ( list ) -- バリデーション用の画像パスのリスト
  • valid_annotation_list ( list ) -- バリデーション用のアノテーションファイルのパスリスト
  • epoch ( int ) -- 学習エポック数
  • batch_size ( int ) -- バッチサイズ
  • augmentation ( Augmentation ) -- Augmentationオブジェクト
  • callback_end_epoch ( function ) -- 与えられた関数が各エポックの最後に呼ばれます
戻り値:

学習誤差とバリデーション誤差のリスト

戻り値の型:

(tuple)

>>> train_img_path_list, train_annot_list = ... # Define train data
>>> valid_img_path_list, valid_annot_list = ... # Define validation data
>>> class_map = ... # Define class map
>>> model = TernausNet(class_map) # Specify any algorithm provided by ReNomIMG API here
>>> model.fit(
...     # Feeds image and annotation data
...     train_img_path_list,
...     train_annot_list,
...     valid_img_path_list,
...     valid_annot_list,
...     epoch=8,
...     batch_size=8)
>>>

以下の引数が callback_end_epoch に与えられます。

  • epoch (int) - 現在のエポック数
  • model (Model) - モデルオブジェクト
  • avg_train_loss_list (list) - 各エポックの学習誤差の平均のリスト
  • avg_valid_loss_list (list) - 各エポックのバリデーション誤差の平均のリスト
forward ( x )

順伝播を行います。これは __call__ 関数によって呼ばれます。

パラメータ: x ( ndarray , Node ) -- TernausNetに対する入力
戻り値: TernausNetの生の出力を返します。
戻り値の型: (Node)

>>> import numpy as np
>>> x = np.random.rand(1, 3, 224, 224)
>>>
>>> class_map = ["dog", "cat"]
>>> model = TernausNet(class_map)
>>>
>>> y = model.forward(x) # Forward propagation.
>>> y = model(x)  # Same as above result.
loss ( x , y , class_weight=None )

TernausNetのための損失関数

パラメータ:
  • x ( ndarray , Node ) -- ニューラルネッチワークの出力データ
  • y ( ndarray , Node ) -- 教師データ
戻り値:

xとy間の損失

戻り値の型:

(Node)

predict ( img_list , batch_size=1 )
戻り値: 一枚の画像もしくは画像のパスが与えられた場合、 (幅、高さ) の形のarrayが返されます。複数の画像もしくは画像のパスが与えられた場合は、 (幅、高さ) の形のarrayが入ったリストが返されます。
戻り値の型: (Numpy.array or list)
preprocess ( x )

与えられたarrayに対して前処理を行います。

パラメータ: x ( ndarray , Node ) -- 前処理を行うための画像のarray
regularize ( )

損失関数に追加する正則化項

>>> x = numpy.random.rand(1, 3, 224, 224)  # Input image
>>> y = ...  # Ground-truth label
>>>
>>> class_map = ['cat', 'dog']
>>> model = TernausNet(class_map)
>>>
>>> z = model(x)  # Forward propagation
>>> loss = model.loss(z, y)  # Loss calculation
>>> reg_loss = loss + model.regularize()  # Add weight decay term.
class Deeplabv3plus ( class_map=None, imsize=(321, 321), scale_factor=16, atrous_rates=[6, 12, 18], lr_initial=0.007, lr_power=0.9, load_pretrained_weight=False, train_whole_network=False )

ベースクラス: renom_img.api.segmentation.SemanticSegmentation

Deeplabv3+モデル。バックボーンにXception65 CNNを利用しています。

パラメータ:
  • class_map ( list , dict ) -- クラス名の配列
  • imsize ( int , tuple ) -- リサイズ後の画像サイズ。現バージョンでは(321,321)の画像サイズのみサポートします。
  • scale_factor ( int ) -- 特徴マップの入力画像サイズに対する縮小割合。現バージョンでは16のみサポートします。
  • atrous_rates ( list ) -- ASPPモジュールのdilation変数。現バージョンでは[6,12,18]のみをサポートします。
  • lr_initial ( float ) -- 学習率の初期値。
  • lr_power ( float ) -- 学習率スケジュールの計算に使う変数。
  • load_pretrained_weight ( bool , str ) -- 事前学習済みの重みを利用する場合はTrue、さもなければFalse
  • train_whole_network ( bool ) -- モデル全体の学習を行う場合はTrue、さもなければFalse

>>> from renom_img.api.segmentation.deeplab import Deeplabv3plus
>>>
>>> class_map = ['background', 'object']
>>> model = Deeplabv3plus(class_map, imsize=(224,224), lr_initial=1e-3, lr_power=0.9, load_pretrained_weight=True, train_whole_network=True)

参照

Liang-Chieh Chen, George Papandreou, Florian Schroff, Hartwig Adam
Rethinking Atrous Convolution for Semantic Image Segmentation

Liang-Chieh Chen, Yukun Zhu, George Papandreou, Florian Schroff, Hartwig Adam
Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

fit ( train_img_path_list=None , train_annotation_list=None , valid_img_path_list=None , valid_annotation_list=None , epoch=136 , batch_size=64 , optimizer=None , augmentation=None , callback_end_epoch=None , class_weight=None )

この関数は与えられたデータとパラメータをもとに、モデルの学習を行います。

パラメータ:
  • train_img_path_list ( list ) -- 画像ファイルのパスのリスト
  • train_annotation_list ( list ) -- アノテーションファイルのパスのリスト
  • valid_img_path_list ( list ) -- バリデーション用の画像パスのリスト
  • valid_annotation_list ( list ) -- バリデーション用のアノテーションファイルのパスリスト
  • epoch ( int ) -- 学習エポック数
  • batch_size ( int ) -- バッチサイズ
  • augmentation ( Augmentation ) -- Augmentationオブジェクト
  • callback_end_epoch ( function ) -- 与えられた関数が各エポックの最後に呼ばれます
戻り値:

学習誤差とバリデーション誤差のリスト

戻り値の型:

(tuple)

>>> train_img_path_list, train_annot_list = ... # Define train data
>>> valid_img_path_list, valid_annot_list = ... # Define validation data
>>> class_map = ... # Define class map
>>> model = Deeplabv3plus(class_map) # Specify any algorithm provided by ReNomIMG API here
>>> model.fit(
...     # Feeds image and annotation data
...     train_img_path_list,
...     train_annot_list,
...     valid_img_path_list,
...     valid_annot_list,
...     epoch=8,
...     batch_size=8)
>>>

以下の引数が callback_end_epoch に与えられます。

  • epoch (int) - 現在のエポック数
  • model (Model) - モデルオブジェクト
  • avg_train_loss_list (list) - 各エポックの学習誤差の平均のリスト
  • avg_valid_loss_list (list) - 各エポックのバリデーション誤差の平均のリスト
forward ( x )

順伝播を行います。これは __call__ 関数によって呼ばれます。

パラメータ: x ( ndarray , Node ) -- Deeplabv3plusに対する入力
戻り値: Deeplabv3plusの生の出力を返します。
戻り値の型: (Node)

>>> import numpy as np
>>> x = np.random.rand(1, 3, 224, 224)
>>>
>>> class_map = ["dog", "cat"]
>>> model = Deeplabv3plus(class_map)
>>>
>>> y = model.forward(x) # Forward propagation.
>>> y = model(x)  # Same as above result.
loss ( x , y , class_weight=None )

Deeplabv3plusのための損失関数

パラメータ:
  • x ( ndarray , Node ) -- ニューラルネッチワークの出力データ
  • y ( ndarray , Node ) -- 教師データ
戻り値:

xとy間の損失

戻り値の型:

(Node)

predict ( img_list , batch_size=1 )
戻り値: 一枚の画像もしくは画像のパスが与えられた場合、 (幅、高さ) の形のarrayが返されます。複数の画像もしくは画像のパスが与えられた場合は、 (幅、高さ) の形のarrayが入ったリストが返されます。
戻り値の型: (Numpy.array or list)
preprocess ( x )

与えられたarrayに対して前処理を行います。

パラメータ: x ( ndarray , Node ) -- 前処理を行うための画像のarray
regularize ( )

損失関数に追加する正則化項

>>> x = numpy.random.rand(1, 3, 224, 224)  # Input image
>>> y = ...  # Ground-truth label
>>>
>>> class_map = ['cat', 'dog']
>>> model = Deeplabv3plus(class_map)
>>>
>>> z = model(x)  # Forward propagation
>>> loss = model.loss(z, y)  # Loss calculation
>>> reg_loss = loss + model.regularize()  # Add weight decay term.