Metode yang saya ketahui adalah sesuatu seperti ini dari tensorflow.keras.preprocessing.image import ImageDataGenerator train_datagen = ImageDataGenerator(rescale=1./255) val_datagen = ImageDataGenerator(...

3
Sadaf Shafi 5 April 2021, 16:03

3 jawaban

Jawaban Terbaik

Anda dapat mengubah ukuran batch setelah membuat objek ImageDataGenerator:

train_generator.batch_size = 2

Batch kemudian akan menjadi ukuran 2.

2
Nicolas Gervais 5 April 2021, 13:26

Inilah cara lain yang berhasil bagi saya, saya menyalin kode dari keras.dataset.cifar10 dan menggunakan tautan dataset cats_vs_dogs

from tensorflow.python.keras import backend
from tensorflow.python.keras.datasets.cifar import load_batch
from tensorflow.python.keras.utils.data_utils import get_file
from tensorflow.python.util.tf_export import keras_export

dirname = 'cifar-10-batches-py'
origin = 'https://storage.googleapis.com/mledu-datasets/cats_and_dogs_filtered.zip '
path = get_file(
    dirname,
    origin=origin,
    untar=True,
    file_hash=
    '6d958be074577803d12ecdefd02955f39262c83c16fe9348329d7fe0b5c001ce')

num_train_samples = 50000

x_train = np.empty((num_train_samples, 3, 32, 32), dtype='uint8')
y_train = np.empty((num_train_samples,), dtype='uint8')

for i in range(1, 6):
  fpath = os.path.join(path, 'data_batch_' + str(i))
  (x_train[(i - 1) * 10000:i * 10000, :, :, :],
    y_train[(i - 1) * 10000:i * 10000]) = load_batch(fpath)

fpath = os.path.join(path, 'test_batch')
x_test, y_test = load_batch(fpath)

y_train = np.reshape(y_train, (len(y_train), 1))
y_test = np.reshape(y_test, (len(y_test), 1))

if backend.image_data_format() == 'channels_last':
  x_train = x_train.transpose(0, 2, 3, 1)
  x_test = x_test.transpose(0, 2, 3, 1)

x_test = x_test.astype(x_train.dtype)
y_test = y_test.astype(y_train.dtype)
0
Sadaf Shafi 5 April 2021, 14:20

Jawaban dari @Nicolas benar. Anda dapat dengan mudah memilih lapisan ukuran batch setelah membuat generator. Satu informasi tambahan yang saya suka membawa ke sini tentang batch_size di model.fit. Menurut doc

batch_size: ... Jangan tentukan batch_size jika data Anda berupa kumpulan data, generator, atau keras. utils.Sequence instance (karena mereka menghasilkan batch).

Jadi, menurut dokumentasi, kita tidak boleh menentukan batch_size jika kita menggunakan generator karena menghasilkan batch untuk pelatihan.

0
M.Innat 5 April 2021, 13:39