2017-04-17 3 views
1

코드 시작 : I 수단 BATCH_SIZE 알고num_epochs와 steps의 차이점은 무엇입니까? tensorflow에서

import tensorflow as tf 
import numpy as np 

features = [tf.contrib.layers.real_valued_column("x", dimension=1)] 
estimator = tf.contrib.learn.LinearRegressor(feature_columns=features) 
x = np.array([1., 2., 3., 4.]) 
y = np.array([0., -1., -2., -3.]) 
input_fn = tf.contrib.learn.io.numpy_input_fn({"x":x}, y, batch_size=4, num_epochs=1000) 
estimator.fit(input_fn=input_fn, steps=1000) 
estimator.evaluate(input_fn=input_fn) 

,하지만 num_epochs 및 단계는 각각 만 4 개 교육 사례가있을 때 무엇을 의미합니까?

+1

가능한 복제 (http://stackoverflow.com/questions/38340311/what-is-the-difference-between-steps-and-epochs) – ml4294

+0

I 이것이 http://stackoverflow.com/questions/38340311/what-is-the-difference-between-steps-and-epochs의 복제본이라고 생각하십시오. 거기에서 잘 설명 된 대답을 찾을 수 있습니다. – ml4294

+0

또한 설명서를 확인하십시오. https://www.tensorflow.org/api_docs/python/tf/contrib/learn/Trainable – Jeff

답변

2

획기적으로 의미하는 것은 전체 데이터를 사용한다는 의미입니다.

단계는 단일 배치 데이터를 사용하는 것을 의미합니다.

따라서, n_steps = Number of data in single epoch // batch_size. https://www.tensorflow.org/api_docs/python/tf/contrib/learn/Trainable에 따르면

,

  • 단계 : 모델을 학습 할 단계의 수. 없음이면 영원히 훈련하십시오. 'steps'은 점진적으로 작동합니다. 두 번 맞는 (steps = 10)을 호출하면 훈련은 총 20 단계로 발생합니다. 증분 동작을 원하지 않으면 대신 max_steps를 설정하십시오. 설정된 경우, max_steps는 None이어야합니다.

  • batch_size : 입력에 사용할 최소 크기이며 기본값은 x의 첫 번째 크기입니다. input_fn이 제공되면 None이어야합니다.

+0

여기에 num_epochs는 어떨까요? 총 4 가지 예만 있습니다. – iamabug

+0

나는 num_epochs 및 steps에 대해 다른 값을 시도하고 그 단계가 num_epochs보다 클 수 없다는 것을 알았습니다. 어쩌면 num_epochs는 교육 시간의 상한선이며 단계는 실제 교육 시간입니다. 고마워. – iamabug

1

num_epochsinput_fn

steps이 기능을 실행해야하는 횟수를 나타냅니다 전체 배치를 반환하는 횟수를 나타냅니다. 각 단계에 대한

, input_fn 전화 : 여기 객체 estimator의 방법

, 그 중 하나가 Tensorflow API에 따라 같은 데이터를 제공하는 "단계"배 또는 input_fn 중단된다 이상 실행이 중지됩니다 하나의 데이터 배치를 반환합니다. 다음이 될 때까지 평가합니다. - 단계 배치가 처리되거나 - input_fn이 입력 끝 예외 (OutOfRangeError 또는 StopIteration)를 발생시킵니다.

[단계와 신 (新) 시대의 차이점은 무엇입니까?]의
관련 문제