0

これは単なる好奇心の問題です。私のコードは動作します。さまざまなグループ (トレーニング、検証、およびテスト) に分割しようとしている多数のインスタンスがあります。それらは 1 つのリストで表されますが、23 のグループにとどまることが重要です。これが私の実装です。

train_end = int(len(instances)*TRAINING_END)
while train_end % CHANNELS != 0:
    train_end -= 1
valid_end = int(len(instances)*VALIDATION_END)
while valid_end % CHANNELS != 0:
    valid_end += 1

次に、 を使用してリストを分割します[:train_end], [train_end:valid_end], [valid_end:]。Pythonでこれほど多くのステップを踏むものはすべて、より簡単な方法があるように感じます。何か案は?

4

1 に答える 1

1

次のようにして while ループをスキップできます。

train_end = (int(len(instances)*TRAINING_END) // CHANNELS) * CHANNELS

これの効果は、int(len(instances)*TRAINING_END)が で割り切れることを確認することですCHANNELS

の場合valid_end、同等の効果は次のとおりです。

valid_end = (int(len(instances)*VALIDATION_END) // CHANNELS + 1) * CHANNELS
于 2013-10-14T16:51:13.570 に答える