在將其轉換為 BatchDataset 后,我??在影像上訓練了我的 tensorflow 模型
IMG_size = 224
INPUT_SHAPE = [None, IMG_size, IMG_size, 3] # 4D input
model.fit(x=train_data,
epochs=EPOCHES,
validation_data=test_data,
validation_freq=1, # check validation metrics every epoch
callbacks=[tensorboard, early_stopping])
model.compile(
loss=tf.keras.losses.CategoricalCrossentropy(),
optimizer=tf.keras.optimizers.Adam(),
metrics=["accuracy"]
)
model.build(INPUT_SHAPE)
“train_data”型別是:tensorflow.python.data.ops.dataset_ops.BatchDataset。
我想在單個 numpy 陣列或張量常數上運行我的模型,但它將是 3D 輸入矩陣而不是 4D 作為輸入“TensorShape([224, 224, 3])”我該如何重塑它?
uj5u.com熱心網友回復:
您可以使用以下代碼擴展影像矩陣的尺寸:
newImage = tf.expand_dims(Original_Image, axis = 0)
然后將其傳遞給預測函式,它將正常作業。
uj5u.com熱心網友回復:
????嗨,這很容易,目標尺寸使所有輸入都變成相同的形狀。
???? 對輸入形狀很有幫助,也可以使用影像功能擴展維度。img_array = tf.expand_dims(image, 0) # 創建一個批次
???? 談論您的輸入 INPUT_SHAPE = [None, IMG_size, IMG_size, 3] # 4D 輸入您可以通過影像訓練資料集排列這些輸入影像并饋送到模型中。
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Variables
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
BATCH_SIZE = 16
IMG_SIZE = (160, 160)
PATH = 'F:\\datasets\\downloads\\sample\\cats_dogs\\training'
training_directory = os.path.join(PATH, 'train')
validation_directory = os.path.join(PATH, 'validation')
train_dataset = tf.keras.utils.image_dataset_from_directory(training_directory,
shuffle=True,
batch_size=BATCH_SIZE,
image_size=IMG_SIZE,
seed=42)
validation_dataset = tf.keras.utils.image_dataset_from_directory(validation_directory,
shuffle=True,
batch_size=BATCH_SIZE,
image_size=IMG_SIZE,
seed=42)
class_names = train_dataset.class_names
print( "class_names: " str( class_names ) )
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
DataSet
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
AUTOTUNE = tf.data.experimental.AUTOTUNE
train_dataset = train_dataset.prefetch(buffer_size=AUTOTUNE)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Model ( examine input layer )
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
inputs = tf.keras.Input(shape=(160, 160, 3))
model = tf.keras.Model(inputs, outputs)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Training
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
history = model.fit(train_dataset, epochs=initial_epochs, validation_data=validation_dataset)
...

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/462337.html
