2 개의 다차원 배열 [prev_sentences, current_sentences]이있는 훈련 데이터가 있는데, 간단한 model.fit 메서드를 사용했을 때 메모리 오류가 발생합니다. 지금 fit_generator를 사용하고 싶지만 훈련 데이터를 배치로 분할하여 model.fit_generator에 공급하는 방법을 모르겠습니다. 훈련 데이터의 모양은 (111356,126,1024) 및 (111356,126,1024)이고 y_train 모양은 (111356,19)입니다. 다음은 간단한 맞춤 방법에 대한 코드입니다.
history=model.fit([previous_sentences, current_sentences], y_train,
epochs=15,batch_size=256,
shuffle = False, verbose = 1,
validation_split=0.2,
class_weight=custom_weight_dict,
callbacks=[early_stopping_cb])
fit_generator 및 데이터 생성기를 사용한 적이 없으므로 이러한 훈련 데이터를 fit_generator로 사용하도록 분할하는 방법을 정확히 알지 못합니다. 누구든지 fit_generator를 사용하여 배치를 만드는 데 도움을 줄 수 있습니까?
훈련 데이터를 미니 배치로 분할하는 데이터 생성기입니다.
def generate_data(X1,X2,Y,batch_size):
p_input=[]
c_input=[]
target=[]
batch_count=0
for i in range(len(X1)):
p_input.append(X1[i])
c_input.append(X2[i])
target.append(Y[i])
batch_count+=1
if batch_count>batch_size:
prev_X=np.array(p_input,dtype=np.int64)
cur_X=np.array(c_input,dtype=np.int64)
cur_y=np.array(target,dtype=np.int32)
print(len(prev_X),len(cur_X))
yield ([prev_X,cur_X],cur_y )
p_input=[]
c_input=[]
target=[]
batch_count=0
return
다음은 model.fit 메서드 대신 fit_generator 함수 호출입니다.
batch_size=256
epoch_steps=math.ceil(len(previous_sentences)/ batch_size)
hist = model.fit_generator(generate_data(previous_sentences,current_sentences, y_train, batch_size),
steps_per_epoch=epoch_steps,
callbacks = [early_stopping_cb],
validation_data=generate_data(val_prev, val_curr,y_val,batch_size),
validation_steps=val_steps, class_weight=custom_weight_dict,
verbose=1)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다