Şu anda tf.estimator API'sini denediğim için, bulanık bulgularımı da buraya eklemek istiyorum. Adımların ve epochs parametrelerinin kullanımının TensorFlow boyunca tutarlı olup olmadığını henüz bilmiyorum ve bu nedenle şimdilik sadece tf.estimator (özellikle tf.estimator.LinearRegressor) ile ilişkiliyim.
Eğitim adımları tanımlandı num_epochs
: steps
açıkça tanımlanmadı
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)
Yorum: num_epochs=1
Eğitim girdisi için ayarladım ve doküman girişi numpy_input_fn
bana "num_epochs: Integer, veri üzerinde yinelenecek dönem sayısı. If None
sonsuza kadar çalışacak" diyor. . İle num_epochs=1
yukarıdaki örnekte eğitim tam olarak çalışır x_train.size / batch_size süreleri / adımlar (aynı benim durumumda bu 175.000 adımlar oldu x_train
700000 bir boyutu vardı ve batch_size
4 idi).
Eğitim adımları şu şekilde tanımlanır num_epochs
: steps
açıkça tanımlanmış adım sayısından daha yükseknum_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)
Yorum: num_epochs=1
benim durumumda 175000 adım anlamına gelir ( x_train.size / batch_size ile x_train.size = 700.000 ve batch_size = 4 ) ve estimator.train
adımlar parametresi 200.000 olarak ayarlanmış olsa da bu tam olarak adım sayısıdır estimator.train(input_fn=train_input, steps=200000)
.
Tarafından tanımlanan eğitim adımları 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)
Yorum: Her ne kadar 1000 adımdan sonra eğitim durmalarını num_epochs=1
çağırırken ayarlamış olsam da numpy_input_fn
. Bunun nedeni ise steps=1000
içinde estimator.train(input_fn=train_input, steps=1000)
üzerine yazar num_epochs=1
içinde tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
.
Sonuç : Her ne parametreleri num_epochs
için tf.estimator.inputs.numpy_input_fn
ve steps
için estimator.train
tanımlar, alt sınır tarafından işletilecek adım sayısını belirler.