KERAS「部分的な畳み込みを使用した不規則な穴の入力画像」、https://arxiv.org/abs/1804.07723。著者のギリン・リウ、フィッツム・A・レダ、ケビン・J・シー、ティン・チュン・ワン、アンドリュー・タオ、ブライアン・カタンザロは、この素晴らしい論文をリリースして、アーキテクチャを実装するための素晴らしい学習体験でした。部分的な畳み込み層、および損失は機能します。

このアルゴリズムでいくつかの予測を試す最も簡単な方法は、www.fixmyphoto.aiにアクセスすることです。ここでは、AWS Lambda機能の処理推論を使用したサーバーレスのReactアプリケーションに展開しました。
コードを掘り下げたい場合は、これらの部分的な畳み込み層を使用したUNetのようなアーキテクチャと同様に、新しいPConv2D KERASレイヤーの主要な実装と、それぞれlibs/pconv_layer.pyおよびlibs/pconv_model.pyにあります。実装の大部分を見つけることができます。これを超えて、4つのJupyterノートブックを設定しました。これは、ネットワークの実装中に行ったいくつかのステップを詳述しています。
ステップ1:ランダムな不規則なマスクの作成
ステップ2: PConv2Dレイヤーの実装の実装とテスト
ステップ3: PConv2Dレイヤーを使用してUNETアーキテクチャの実装とテスト
ステップ4:Imagenetの最終アーキテクチャのトレーニングとテスト
ステップ5:画像チャンキングを介して任意の画像サイズを予測する単純な試み
PytorchからKerasにVGG16のウェイトを移植しました。これは1/255.ピクセルスケーリングは、Pytorchと同様にVGG16ネットワークに使用できます。
ステップ4ノートブックに直接移動するか、CLIを使用することもできます(変換されたVGG16の重みをダウンロードしてください):
python main.py
--name MyDataset
--train TRAINING_PATH
--validation VALIDATION_PATH
--test TEST_PATH
--vgg_path './data/logs/pytorch_to_keras_vgg16.h5'
実装の詳細は論文自体にありますが、ここでいくつかの詳細を要約しようとします。
論文では、ランダムな不規則なマスクを作成するためにビデオの2つの連続したフレーム間の閉塞/閉塞に基づく手法を使用します。代わりに、OpenCVを使用してランダムな不規則な形状を描画する単純なマスク生成器関数を作成することを選択しました。次に、マスクに使用します。しかし、新しいマスク生成手法を後で接続することは問題ではないはずです。この方法も使用して最終結果はかなりまともだと思います。
この実装の重要な要素は、部分的な畳み込み層です。基本的に、畳み込みフィルターWと対応するバイアスBを考えると、通常の畳み込みの代わりに、次の部分的な畳み込みが適用されます。

ここで、⊙は元素ごとの乗算で、 Mは0と1のバイナリマスクです。重要なことに、各部分畳み込みの後、マスクも更新されます。そのため、畳み込みが少なくとも1つの有効な入力で出力を条件付けることができた場合、マスクはその場所で削除されます。

この結果、十分に深いネットワークがある場合、マスクは最終的にすべてのネットワークになります(つまり、消滅します)
アーキテクチャの具体的な詳細は論文にありますが、基本的にはUNETのような構造に基づいています。すべての通常の畳み込み層は、部分的な畳み込み層に置き換えられ、すべての場合に画像がマスクに沿ってネットワークを通過するようにします。 。以下は、アーキテクチャの概要を提供します。 
論文で使用される損失関数はちょっと強烈であり、論文でレビューできます。要するに、それは以下を含みます:
これらすべての損失条件の重みは次のとおりです。 
ネットワークは、バッチサイズが1のImagenetでトレーニングされ、各エポックは10,000バッチの長さであるように指定されていました。さらに、トレーニングは、バッチ正規化がマスクされた畳み込みの問題を提示するため、2つの段階でAdam Optimizerを使用して実行されました(穴ピクセルについて平均と分散が計算されるため)。
すべてのレイヤーでバッチ正規化が有効になっている50エポックのステージ1学習率0.0001
すべてのエンコーディングレイヤーのバッチ正規化が無効になっている50エポックのステージ2学習率0.00005。
表示されている画像のトレーニング時間は絶対に狂っていましたが、それは私の個人的なセットアップが不十分なためです。私が1080TIで試したいくつかのテスト(バッチサイズ4の)は、論文で指定されているように、トレーニング時間が約10日間になる可能性があることを示しています。