keras에서 훈련 데이터를 바탕으로 하는 몇 가지 방식 비교(fit와fit_generator)
3469 단어 keras훈련하다fitfit generator
하나, train_on_batch
model.train_on_batch(batchX, batchY)
train_on_batch 함수는 단일 데이터를 받아들여 역방향 전파를 실행한 다음에 모델 파라미터를 업데이트합니다. 이 데이터의 크기는 임의로 할 수 있습니다. 즉, 명확한 대량 크기를 제공할 필요가 없고 정밀화 제어 훈련 모델에 속합니다. 대부분의 경우 우리는 이렇게 정밀할 필요가 없습니다. 99% 상황에서fit_generator 훈련 방식을 소개하겠습니다.2. fit
model.fit(x_train, y_train, batch_size=32, epochs=10)
fit 방식은 한 번에 훈련 데이터를 메모리에 불러오고 매번 일괄 처리batch_모델 매개 변수를 업데이트하기 위해 ize 개의 데이터를 사용하면 epochs는 더 이상 소개할 필요가 없습니다.이런 훈련 방식은 훈련 데이터량이 비교적 적은 상황에서만 사용하기에 적합하다.셋,fit_generator
Python의 생성기를 이용하여 데이터의batch를 하나하나 생성하고 훈련을 진행하며 대량의 메모리를 차지하지 않으며 생성기와 모델은 병행하여 실행하여 효율을 높인다.예를 들어 이 함수는 CPU에서 실시간으로 데이터를 향상시키고 GPU에서 모형 훈련을 할 수 있도록 한다
인터페이스는 다음과 같습니다.
fit_generator(self, generator, steps_per_epoch, epochs=1, verbose=1, callbacks=None, validation_data=None, validation_steps=None, class_weight=None, max_q_size=10, workers=1, pickle_safe=False, initial_epoch=0)
generator
: 생성기 함수steps_per_epoch
: 정수, 생성기가 steps_로 되돌아오면per_epoch차 데이터는 epoch가 끝나고 다음 epoch를 실행합니다.한 epoch에서 몇 번batch를 실행하는지_size.epochs
: 정수, 데이터 교체의 윤수를 제어하고 도착하면 훈련을 끝낸다.callbacks=None,list,list의 요소는keras입니다.callbacks.Callback 대상, 훈련 과정에서list의 리셋 함수 호출
예:
def generate_arrays_from_file(path):
while True:
with open(path) as f:
for line in f:
# create numpy arrays of input data
# and labels, from each line in the file
x1, x2, y = process_line(line)
yield ({'input_1': x1, 'input_2': x2}, {'output': y})
model.fit_generator(generate_arrays_from_file('./my_folder'),
steps_per_epoch=10000, epochs=10)
keras.fit_generator () 속성 및 값 가져오기다음과 같습니다.
fit_generator(self, generator,
steps_per_epoch=None,
epochs=1,
verbose=1,
callbacks=None,
validation_data=None,
validation_steps=None,
class_weight=None,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
shuffle=True,
initial_epoch=0)
Pythongenerator를 통해 훈련 모델에 사용할 데이터를 생성합니다.generator는 모델과 병행하여 실행할 수 있다. 예를 들어 CPU를 사용하여 일괄 데이터를 생성하고 GPU에서 모델을 훈련할 수 있다.매개변수:
generator
: 멀티프로세스를 사용할 때 데이터를 직접 복제하는 것을 피하기 위해generator나 Sequence의 실례입니다.steps_per_epoch
:generator에서 발생한 절차의 총수(샘플 횟수 총수).통상적으로 데이터 집합의 견본 수량을 대량의 크기로 나누는 것과 같아야 한다.epochs
: 정수, 데이터 집합에서 교체된 총수.works
: 프로세스 기반 루틴을 사용할 때 시작해야 할 프로세스의 수량입니다.use_multiprocessing
: 부울 값.True일 때 프로세스 기반 루틴을 사용합니다.예:
datagen = ImageDataGenator(...)
model.fit_generator(datagen.flow(x_train, y_train,
batch_size=batch_size),
epochs=epochs,
validation_data=(x_test, y_test),
workers=4)
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
keras에서 훈련 데이터를 바탕으로 하는 몇 가지 방식 비교(fit와fit_generator)train_on_batch 함수는 단일 데이터를 받아들여 역방향 전파를 실행한 다음에 모델 파라미터를 업데이트합니다. 이 데이터의 크기는 임의로 할 수 있습니다. 즉, 명확한 대량 크기를 제공할 필요가 없고 정밀화 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.