私はDockerを完全に新しくしました。私はニューラルネットワークを訓練するためにそれを使用しています。既に実行中のドッカーコンテナからの成果物を保存する
実行中のコンテナがあり、NNをトレーニングするためのスクリプトを実行し、コンテナの書き込み可能なレイヤーにその重みを保存しています。最近、私はこの設定が間違っていることを認識しました(私は適切なRTFMを持っていません)、NNの重みはトレーニングの終了後に失われます。
ボリュームと永続的なデータストレージに関する回答とレシピを読んだことがあります。それらのすべてが一つのアイデアを表しています。データストレージを事前に準備する必要があります。
私のコンテナはで、すでに実行中ですです。間違った設定は私のせいだと私は理解しています。とにかく、私はこの実行中に取得される結果を失うことは望ましくありません(現在進行中です)。出来ますか?私の心に来た
一つの解決策は、1台の以上の端末を開いているwatch -n 1000 docker commit <image id> tag:label
実行し、スナップショットごとに1000秒をコミットすることです。ただし、最後のエポックで得られたウェイトは、エポック期間が異なり、1000の倍数ではないため、依然として危険です。
さらに洗練されたソリューションはありますか?このコンテナの
追加情報
画像は、次のDockerfileを使用して作成されました:
私は手動で最新のtensorflowの画像から画像tensorflow-py3-gpu-keras
を作成した
は、DockerHubから引き出さ
FROM tensorflow-py3-gpu-keras
WORKDIR /root
COPY model4.py /root
COPY data_generator.py /root
COPY hyper_parameters.py /root
CMD python model4.py
:
docker run tensorflow
容器内:
別の端末でpip3 install keras
とdocker commit
。
ファイルをルートディレクトリに保存する必要はありますか? @ wl2776 – Sergiu
はい、スクリプトは/ rootで実行され、現在のディレクトリ – wl2776
にファイルを作成します。そのディレクトリに-vを使用してディレクトリをマウントしようとすると、そのディレクトリとすべてのファイルがパーマネント – Sergiu