পরিশিষ্ট: ব্যাচের প্রশিক্ষণ

আপনার প্রক্রিয়ার জন্য বরাদ্দ করা মেমরিতে খুব বড় ডেটাসেটগুলি ফিট নাও হতে পারে৷ পূর্ববর্তী ধাপে, আমরা একটি পাইপলাইন সেট আপ করেছি যেখানে আমরা পুরো ডেটাসেট মেমরিতে আনব, ডেটা প্রস্তুত করি এবং প্রশিক্ষণ ফাংশনে কাজের সেটটি পাস করি। পরিবর্তে, কেরাস একটি বিকল্প প্রশিক্ষণ ফাংশন ( fit_generator ) প্রদান করে যা ব্যাচে ডেটা টানে। এটি আমাদের ডেটা পাইপলাইনে রূপান্তরগুলিকে ডেটার শুধুমাত্র একটি ছোট ( batch_size একাধিক) অংশে প্রয়োগ করতে দেয়। আমাদের পরীক্ষার সময়, আমরা DBPedia , Amazon পর্যালোচনা , Ag news , এবং Yelp পর্যালোচনার মতো ডেটাসেটের জন্য ব্যাচিং (GitHub-এ কোড) ব্যবহার করি।

নিম্নলিখিত কোডটি ব্যাখ্যা করে কিভাবে ডেটা ব্যাচ তৈরি করতে হয় এবং fit_generator এ তাদের খাওয়ানো যায়।

def _data_generator(x, y, num_features, batch_size):     """Generates batches of vectorized texts for training/validation.      # Arguments         x: np.matrix, feature matrix.         y: np.ndarray, labels.         num_features: int, number of features.         batch_size: int, number of samples per batch.      # Returns         Yields feature and label data in batches.     """     num_samples = x.shape[0]     num_batches = num_samples // batch_size     if num_samples % batch_size:         num_batches += 1      while 1:         for i in range(num_batches):             start_idx = i * batch_size             end_idx = (i + 1) * batch_size             if end_idx > num_samples:                 end_idx = num_samples             x_batch = x[start_idx:end_idx]             y_batch = y[start_idx:end_idx]             yield x_batch, y_batch  # Create training and validation generators. training_generator = _data_generator(     x_train, train_labels, num_features, batch_size) validation_generator = _data_generator(     x_val, val_labels, num_features, batch_size)  # Get number of training steps. This indicated the number of steps it takes # to cover all samples in one epoch. steps_per_epoch = x_train.shape[0] // batch_size if x_train.shape[0] % batch_size:     steps_per_epoch += 1  # Get number of validation steps. validation_steps = x_val.shape[0] // batch_size if x_val.shape[0] % batch_size:     validation_steps += 1  # Train and validate model. history = model.fit_generator(     generator=training_generator,     steps_per_epoch=steps_per_epoch,     validation_data=validation_generator,     validation_steps=validation_steps,     callbacks=callbacks,     epochs=epochs,     verbose=2)  # Logs once per epoch.