Karena saya saat ini sedang bereksperimen dengan API tf.estimator, saya ingin menambahkan temuan saya yang berembun di sini juga. Saya belum tahu apakah penggunaan parameter langkah dan epochs konsisten di seluruh TensorFlow dan oleh karena itu saya hanya berkaitan dengan tf.estimator (khususnya tf.estimator.LinearRegressor) untuk saat ini.
Langkah-langkah pelatihan ditentukan oleh num_epochs: stepstidak ditentukan secara eksplisit
estimator = tf.estimator.LinearRegressor(feature_columns=ft_cols)
train_input = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
estimator.train(input_fn=train_input)
Komentar: Saya telah menyetel num_epochs=1untuk input pelatihan dan entri dokumen untuk numpy_input_fnmemberi tahu saya "num_epochs: Integer, jumlah masa untuk mengulang data. Jika Noneakan berjalan selamanya." . Dengan num_epochs=1contoh di atas, pelatihan berjalan tepat x_train.size / batch_size times / steps (dalam kasus saya ini adalah 175000 langkah karena x_trainmemiliki ukuran 700000 dan batch_size4).
Langkah-langkah pelatihan ditentukan oleh num_epochs: stepsdidefinisikan secara eksplisit lebih tinggi dari jumlah langkah yang secara implisit didefinisikan olehnum_epochs=1
estimator = tf.estimator.LinearRegressor(feature_columns=ft_cols)
train_input = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
estimator.train(input_fn=train_input, steps=200000)
Komentar: num_epochs=1dalam kasus saya berarti 175.000 langkah ( x_train.size / batch_size dengan x_train.size = 700.000 dan batch_size = 4 ) dan ini persis jumlah langkahnya estimator.trainmeskipun parameter langkah disetel ke 200.000 estimator.train(input_fn=train_input, steps=200000).
Langkah-langkah pelatihan ditentukan oleh steps
estimator = tf.estimator.LinearRegressor(feature_columns=ft_cols)
train_input = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
estimator.train(input_fn=train_input, steps=1000)
Komentar: Meskipun saya telah mengatur num_epochs=1kapan memanggil numpy_input_fnpelatihan berhenti setelah 1000 langkah. Ini karena steps=1000di estimator.train(input_fn=train_input, steps=1000)menimpa num_epochs=1in tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True).
Kesimpulan : Apapun parameter num_epochsuntuk tf.estimator.inputs.numpy_input_fndan stepsuntuk estimator.trainditentukan, batas bawah menentukan jumlah langkah yang akan dijalankan.