Pytorchは、トレーニングとテストでさまざまな出力を実現します

Pytrochは、トレーニングとテストでさまざまな出力を実現します

私たちは以前、model.train()それmodel.eval()がBNとドロップアウトの実現につながると言ってきましたどうしてこれなの?

BNとDropoutは、トレーニングとテストの操作が異なるためです。したがって、トレーニングとテストを区別する必要があります。

コードをトレーニングまたはテストする前に、次のことを規定します。

  • 追加するトレーニングmodel.train()
  • 追加するテストmodel.eval()

これは、そのようなモデルのtraining属性が設定されているtrueか、である可能性があるためfalseです。このようにして、モデルがトレーニングされているかどうかがわかります。

class Model(nn.Module):
    def __init__(self):
        pass
    def isTraining(self):
        if self.training:
            return True
        else:
            return False
        
model = Model()
model.train()
print(model.training)
model.isTraining()

model.eval()
print(model.training)
model.isTraining()
result:
True
True
False
False

おすすめ

転載: blog.csdn.net/qq_43477218/article/details/115307042