Я хочу воспроизводимые результаты с кодом, включая увеличение изображения. Каждый раз, когда я запускаю этот код с процессором Google Colab, я получаю разные результаты. Как я могу получать одинаковые результаты каждый раз?
Примечание. Когда я удаляю "image = tf.image.random_flip_left_right (image, seed = seed)", я могу получить воспроизводимые результаты.
import numpy as np
import pandas as pd
import os
import random
import tensorflow as tf
from tensorflow.keras import layers
AUTOTUNE = tf.data.experimental.AUTOTUNE
os.environ['PYTHONHASHSEED'] = '1'
np.random.seed(1)
random.seed(1)
tf.random.set_seed(1)
tf.keras.backend.clear_session()
tf.compat.v1.set_random_seed(1)
session_conf = tf.compat.v1.ConfigProto(
intra_op_parallelism_threads=1,
inter_op_parallelism_threads=1
)
sess = tf.compat.v1.Session(
graph=tf.compat.v1.get_default_graph(),
config=session_conf
)
tf.compat.v1.keras.backend.set_session(sess)
dataset, info = tfds.load('mnist', as_supervised=True, with_info=True)
train_dataset, test_dataset = dataset['train'], dataset['test']
num_train_examples= info.splits['train'].num_examples
def convert(image, label):
image = tf.image.convert_image_dtype(image, tf.float32)
return image, label
def augment(image,label,seed=5):
image,label = convert(image, label)
image = tf.image.convert_image_dtype(image, tf.float32)
# image augmentation -----------------------------------
image = tf.image.random_flip_left_right(image, seed=seed)
# image augmentation -----------------------------------
return image,label
BATCH_SIZE = 64
NUM_EXAMPLES = 2048
augmented_train_batches = (
train_dataset
.take(NUM_EXAMPLES)
.cache()
.map(augment, num_parallel_calls=AUTOTUNE)
.batch(BATCH_SIZE)
.prefetch(AUTOTUNE)
)
def make_model():
model = tf.keras.Sequential([
layers.Flatten(input_shape=(28, 28, 1)),
layers.Dense(4096, activation='relu'),
layers.Dense(4096, activation='relu'),
layers.Dense(10)
])
model.compile(optimizer = 'adam',
loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
return model
model_with_aug = make_model()
aug_history = model_with_aug.fit(augmented_train_batches, epochs=2,shuffle = False)