[解決済み] Keras (tensorflowバックエンド)のmodel.compile()は重みとバイアスを全て初期化するのか?
質問
モデルの学習を開始するとき、以前に保存したモデルがありません。そこで
model.compile()
を安全に実行できます。私は今、モデルを
h5
ファイルに保存し、さらに
checkpoint
.
このモデルをさらに学習させたいとします。このとき、私は混乱しています。
model.compile()
を使ってもいいのでしょうか?の前に置くべきか、後に置くべきか?
model = load_model()
文の前後どちらに置くべきでしょうか?もし
model.compile()
がすべての重みとバイアスを再初期化するならば、私はそれを
model = load_model()
文の前に置くべきです。
いくつかの議論を発見した後、どうやら
model.compile()
が必要なのは、以前に保存したモデルがないときだけです。一度モデルを保存してしまえば
model.compile()
. これは真なのでしょうか、それとも偽なのでしょうか?また、学習させたモデルを用いて予測を行う場合は
model.compile()
を使うべきでしょうか?
どのように解決するのですか?
いつ使用するのですか?
もし
を使っている場合は
compile
の後でなければなりません。
load_model()
. 結局のところ、コンパイルするためにはモデルが必要なのです。(追記
load_model
はモデルとともに保存されたオプティマイザで自動的にモデルをコンパイルします)
は何をするのですか?
compile
は何をするのでしょうか?
コンパイルでは 損失関数 を定義します。 オプティマイザ と メトリックス . 以上です。
重みとは関係なく、何度でもモデルをコンパイルすることができ、プリトレーニングされた重みに問題を生じさせることはありません。
コンパイルされたモデルが必要なのは 学習 (学習は損失関数とオプティマイザを使うから)。しかし、予測のためのモデルをコンパイルする必要はありません。
compileは複数回使う必要があるのでしょうか?
場合のみです。
-
これらのいずれかを変更したい場合。
- 損失関数
- オプティマイザ/学習率
- メトリクス
-
を
trainable
プロパティは、あるレイヤーの
- まだコンパイルされていないモデルをロード(または作成)しました。または、load/save メソッドが以前のコンパイルを考慮しなかった。
再度コンパイルした場合の結果。
モデルを再コンパイルすると オプティマイザーの状態 .
これは、学習率やモーメンタムなどを調整するまでの間、最初のうちはトレーニングが少し苦しくなることを意味します。しかし、重みへのダメージはまったくありません(もちろん、最初の学習率が大きすぎて、最初の学習ステップで微調整された重みが乱暴に変更されてしまう場合は別ですが)。
関連
-
Running tensorflow program prompts Your CPU supports instructions that this TensorFlow binary was not compiled to use:
-
undefinedtensorflowお使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX2
-
EnvironmentErrorのため、パッケージをインストールできませんでした。[Errno 13] パーミッションが拒否された問題を解決しました。
-
TypeError: int() の引数は、文字列、バイトのようなオブジェクト、または数値でなければならず、'map' ではありません。
-
tensorflow Solutionに一致するディストリビューションは見つかりませんでした。
-
TensorflowでProcess finished with exit code -1073741819 (0xC0000005)が発生した場合の解決策。
-
tf.get_variable_scope() 共通の使用法
-
TensorFlowプログラムのGPU使用量無制限を解決する。
-
AttributeError: module 'tensorflow' has no attribute 'keras'related problem solution
-
TensorFlowのインストールにpipを使うのをやめ、condaを使う(CPU & GPU)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Running tensorflow program prompts Your CPU supports instructions that this TensorFlow binary was not compiled to use:
-
undefined警告 お使いのCPUは、このTensorFlowバイナリが使用するためにコンパイルされていない命令をサポートしています。AVX2
-
Tensorflowのexamples.tutorials.mnistにあるinput_dataデータクラスの簡単な分析
-
tensorflow Solutionに一致するディストリビューションは見つかりませんでした。
-
GPU版TensorFlowの正常なインストールをテストします。
-
TensorFlow学習 - Tensorflowオブジェクト検出API (win10, CPU)
-
Keras-Yolo v3 のエラーを解決する。AttributeError: モジュール 'keras.backend' には 'control_flow_ops' という属性がありません。
-
TensorFlowのインストールにpipを使うのをやめ、condaを使う(CPU & GPU)
-
[解決済み] TensorFlow、モデル保存後に3つのファイルが存在するのはなぜか?
-
[解決済み] Dataset.map, Dataset.prefetch, Dataset.shuffleにおけるbuffer_sizeの意味するところ