簡體   English   中英

如何在 3d CNN 中輸入 Nifti Images 進行分類?

[英]How to feed Nifti Images in 3d CNN for classification?

我有 142 張 Nifti 大腦 CT 圖像,我從 Dicom 轉換了它們。 每個 NIfti 文件的尺寸為 512×512×40。 我的計划是使用 3d Conv 神經網絡進行多類分類。 我應該如何在 3d CNN 中提供 Nifti 圖像?

如果您想使用 TensorFlow,您可以考慮以下步驟:

  • 使用 tf.data 加載數據集
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)
  • 訓練你的 model:
 3D_model.compile(..) 3D_model.fit( train_dataset, validation_data=validation_dataset, epochs=epochs, shuffle=True)

也可以參考這個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM