![](/img/trans.png)
[英]How to feed large PrefetchDataset to 3d CNN without exhausting memory?
[英]How to feed Nifti Images in 3d CNN for classification?
我有 142 張 Nifti 大腦 CT 圖像,我從 Dicom 轉換了它們。 每個 NIfti 文件的尺寸為 512×512×40。 我的計划是使用 3d Conv 神經網絡進行多類分類。 我應該如何在 3d CNN 中提供 Nifti 圖像?
如果您想使用 TensorFlow,您可以考慮以下步驟:
train_loader = tf.data.Dataset.from_tensor_slices((x_train, y_train)) validation_loader = tf.data.Dataset.from_tensor_slices((x_val, y_val))
應用您的預處理步驟
train_dataset = ( train_loader.shuffle(len(x_train)).map(train_preprocessing).batch(1).prefetch(2)) validation_dataset = ( validation_loader.shuffle(len(x_val)).map(validation_preprocessing).batch(1).prefetch(2) )
構建你的 3D CNN model:
def 3D_model(width= 512, height= 512, depth=40):
inputs = keras.Input((width, height, depth, 1))
x = layers.Conv3D(filters=84, kernel_size=3, activation="relu")(inputs)
x = layers.MaxPool3D(pool_size=2,padding="same")(x)
x = layers.BatchNormalization()(x)
x = layers.Conv3D(filters=64, kernel_size=3, activation="relu")(x)
x = layers.MaxPool3D(pool_size=2,padding="same")(x)
x = layers.BatchNormalization()(x)
outputs = layers.Dense(units=n_classes, activation="softmax")(x)
model = keras.Model(inputs, outputs)
return model
model = get_model(width=512, height=512, depth=40)
3D_model.compile(..) 3D_model.fit( train_dataset, validation_data=validation_dataset, epochs=epochs, shuffle=True)
也可以參考這個例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.