LoginSignup
5
4

More than 5 years have passed since last update.

Chainerを使う時の注意点

Posted at

Chainerを使う時は目的変数は0から始める

いろいろやってみた感じ、sklearnでは目的変数は[-1,0,1]等でできるのだが、どうもChainerでは[0,1,2]のようにした方がいい。
たぶん、損失関数の計算でおかしなことが起きていると思われる。

predictの注意

以下のようにサンプル等では書かれることが多い。

class ChainerClassifier(BaseChainerEstimator, base.ClassifierMixin):
    def predict(self, x_data):
        return BaseChainerEstimator.predict(self, x_data).argmax(1) #argmaxは行列の行の中で最大になるインデックスを返す。つまりクラスは0から1,2としていかないといけない

コメントにも記載したようにargmax関数はインデックスを返すので、目的変数を-1から始めていたりするとおかしなことになるので注意。

max_pooling_2dとaverage_pooling_2dのpollingサイズ指定の違い

maxプーリングではpoolingははみ出してもいい。
つまり、奇数のカラム数もしくは行数に対して偶数のpoolingサイズでも問題無い。
逆も然り。

だが、averageプーリングでは厳密にカラム数と行数はpoolingサイズの倍数でないといけない。

たぶん、maxは少なくても計算できるが、平均は計算できないため。

なお、maxプーリングの方が速度が遅い。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4