Data Science Asked by ashraful on September 4, 2020
I am trying to train a 3D segmentation Network from Github. My model is implemented by Keras (Python) which is a typical U-Net model. The model summary is given below,
Model: "functional_3"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) [(None, 128, 128, 4) 0
__________________________________________________________________________________________________
gaussian_noise (GaussianNoise) (None, 128, 128, 4) 0 input_1[0][0]
__________________________________________________________________________________________________
conv2d (Conv2D) (None, 128, 128, 64) 1088 gaussian_noise[0][0]
__________________________________________________________________________________________________
batch_normalization (BatchNorma (None, 128, 128, 64) 256 conv2d[0][0]
__________________________________________________________________________________________________
p_re_lu (PReLU) (None, 128, 128, 64) 64 batch_normalization[0][0]
__________________________________________________________________________________________________
conv2d_1 (Conv2D) (None, 128, 128, 64) 36928 p_re_lu[0][0]
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None, 128, 128, 64) 256 conv2d_1[0][0]
__________________________________________________________________________________________________
p_re_lu_1 (PReLU) (None, 128, 128, 64) 64 batch_normalization_1[0][0]
__________________________________________________________________________________________________
conv2d_2 (Conv2D) (None, 128, 128, 64) 36928 p_re_lu_1[0][0]
__________________________________________________________________________________________________
add (Add) (None, 128, 128, 64) 0 conv2d[0][0]
conv2d_2[0][0]
__________________________________________________________________________________________________
conv2d_3 (Conv2D) (None, 64, 64, 128) 32896 add[0][0]
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 64, 64, 128) 512 conv2d_3[0][0]
__________________________________________________________________________________________________
p_re_lu_2 (PReLU) (None, 64, 64, 128) 128 batch_normalization_2[0][0]
__________________________________________________________________________________________________
conv2d_4 (Conv2D) (None, 64, 64, 128) 147584 p_re_lu_2[0][0]
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 64, 64, 128) 512 conv2d_4[0][0]
__________________________________________________________________________________________________
p_re_lu_3 (PReLU) (None, 64, 64, 128) 128 batch_normalization_3[0][0]
__________________________________________________________________________________________________
conv2d_5 (Conv2D) (None, 64, 64, 128) 147584 p_re_lu_3[0][0]
__________________________________________________________________________________________________
add_1 (Add) (None, 64, 64, 128) 0 conv2d_3[0][0]
conv2d_5[0][0]
__________________________________________________________________________________________________
conv2d_6 (Conv2D) (None, 32, 32, 256) 131328 add_1[0][0]
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 32, 32, 256) 1024 conv2d_6[0][0]
__________________________________________________________________________________________________
p_re_lu_4 (PReLU) (None, 32, 32, 256) 256 batch_normalization_4[0][0]
__________________________________________________________________________________________________
conv2d_7 (Conv2D) (None, 32, 32, 256) 590080 p_re_lu_4[0][0]
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 32, 32, 256) 1024 conv2d_7[0][0]
__________________________________________________________________________________________________
p_re_lu_5 (PReLU) (None, 32, 32, 256) 256 batch_normalization_5[0][0]
__________________________________________________________________________________________________
conv2d_8 (Conv2D) (None, 32, 32, 256) 590080 p_re_lu_5[0][0]
__________________________________________________________________________________________________
add_2 (Add) (None, 32, 32, 256) 0 conv2d_6[0][0]
conv2d_8[0][0]
__________________________________________________________________________________________________
conv2d_9 (Conv2D) (None, 16, 16, 512) 524800 add_2[0][0]
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 16, 16, 512) 2048 conv2d_9[0][0]
__________________________________________________________________________________________________
p_re_lu_6 (PReLU) (None, 16, 16, 512) 512 batch_normalization_6[0][0]
__________________________________________________________________________________________________
conv2d_10 (Conv2D) (None, 16, 16, 512) 2359808 p_re_lu_6[0][0]
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 16, 16, 512) 2048 conv2d_10[0][0]
__________________________________________________________________________________________________
p_re_lu_7 (PReLU) (None, 16, 16, 512) 512 batch_normalization_7[0][0]
__________________________________________________________________________________________________
conv2d_11 (Conv2D) (None, 16, 16, 512) 2359808 p_re_lu_7[0][0]
__________________________________________________________________________________________________
add_3 (Add) (None, 16, 16, 512) 0 conv2d_9[0][0]
conv2d_11[0][0]
__________________________________________________________________________________________________
up_sampling2d (UpSampling2D) (None, 32, 32, 512) 0 add_3[0][0]
__________________________________________________________________________________________________
conv2d_12 (Conv2D) (None, 32, 32, 256) 524544 up_sampling2d[0][0]
__________________________________________________________________________________________________
concatenate (Concatenate) (None, 32, 32, 512) 0 add_2[0][0]
conv2d_12[0][0]
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 32, 32, 512) 2048 concatenate[0][0]
__________________________________________________________________________________________________
p_re_lu_8 (PReLU) (None, 32, 32, 512) 512 batch_normalization_8[0][0]
__________________________________________________________________________________________________
conv2d_13 (Conv2D) (None, 32, 32, 256) 1179904 p_re_lu_8[0][0]
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 32, 32, 256) 1024 conv2d_13[0][0]
__________________________________________________________________________________________________
p_re_lu_9 (PReLU) (None, 32, 32, 256) 256 batch_normalization_9[0][0]
__________________________________________________________________________________________________
conv2d_15 (Conv2D) (None, 32, 32, 256) 131072 concatenate[0][0]
__________________________________________________________________________________________________
conv2d_14 (Conv2D) (None, 32, 32, 256) 590080 p_re_lu_9[0][0]
__________________________________________________________________________________________________
add_4 (Add) (None, 32, 32, 256) 0 conv2d_15[0][0]
conv2d_14[0][0]
__________________________________________________________________________________________________
up_sampling2d_1 (UpSampling2D) (None, 64, 64, 256) 0 add_4[0][0]
__________________________________________________________________________________________________
conv2d_16 (Conv2D) (None, 64, 64, 128) 131200 up_sampling2d_1[0][0]
__________________________________________________________________________________________________
concatenate_1 (Concatenate) (None, 64, 64, 256) 0 add_1[0][0]
conv2d_16[0][0]
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 64, 64, 256) 1024 concatenate_1[0][0]
__________________________________________________________________________________________________
p_re_lu_10 (PReLU) (None, 64, 64, 256) 256 batch_normalization_10[0][0]
__________________________________________________________________________________________________
conv2d_17 (Conv2D) (None, 64, 64, 128) 295040 p_re_lu_10[0][0]
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 64, 64, 128) 512 conv2d_17[0][0]
__________________________________________________________________________________________________
p_re_lu_11 (PReLU) (None, 64, 64, 128) 128 batch_normalization_11[0][0]
__________________________________________________________________________________________________
conv2d_19 (Conv2D) (None, 64, 64, 128) 32768 concatenate_1[0][0]
__________________________________________________________________________________________________
conv2d_18 (Conv2D) (None, 64, 64, 128) 147584 p_re_lu_11[0][0]
__________________________________________________________________________________________________
add_5 (Add) (None, 64, 64, 128) 0 conv2d_19[0][0]
conv2d_18[0][0]
__________________________________________________________________________________________________
up_sampling2d_2 (UpSampling2D) (None, 128, 128, 128 0 add_5[0][0]
__________________________________________________________________________________________________
conv2d_20 (Conv2D) (None, 128, 128, 64) 32832 up_sampling2d_2[0][0]
__________________________________________________________________________________________________
concatenate_2 (Concatenate) (None, 128, 128, 128 0 add[0][0]
conv2d_20[0][0]
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 128, 128, 128 512 concatenate_2[0][0]
__________________________________________________________________________________________________
p_re_lu_12 (PReLU) (None, 128, 128, 128 128 batch_normalization_12[0][0]
__________________________________________________________________________________________________
conv2d_21 (Conv2D) (None, 128, 128, 64) 73792 p_re_lu_12[0][0]
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 128, 128, 64) 256 conv2d_21[0][0]
__________________________________________________________________________________________________
p_re_lu_13 (PReLU) (None, 128, 128, 64) 64 batch_normalization_13[0][0]
__________________________________________________________________________________________________
conv2d_23 (Conv2D) (None, 128, 128, 64) 8192 concatenate_2[0][0]
__________________________________________________________________________________________________
conv2d_22 (Conv2D) (None, 128, 128, 64) 36928 p_re_lu_13[0][0]
__________________________________________________________________________________________________
add_6 (Add) (None, 128, 128, 64) 0 conv2d_23[0][0]
conv2d_22[0][0]
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 128, 128, 64) 256 add_6[0][0]
__________________________________________________________________________________________________
p_re_lu_14 (PReLU) (None, 128, 128, 64) 64 batch_normalization_14[0][0]
__________________________________________________________________________________________________
conv2d_24 (Conv2D) (None, 128, 128, 4) 260 p_re_lu_14[0][0]
__________________________________________________________________________________________________
activation (Activation) (None, 128, 128, 4) 0 conv2d_24[0][0]
==================================================================================================
Total params: 10,159,748
Trainable params: 10,153,092
Non-trainable params: 6,656
__________________________________________________________________________________________________
My training file input shape in (batch, Height, Width, Channel)
. I saved the training image and label in two Numpy file (.npy).
Where, x_training.npy
contain images (Shape: (20, 128, 128, 4))
and y_training.npy
contain label of images (Shape: (20, 128, 128, 4)).Then i use custom data generator to read the data.
def img_msk_gen(X33_train,Y_train,seed):
'''
a custom generator that performs data augmentation on both patches and their corresponding targets (masks)
'''
datagen = ImageDataGenerator(horizontal_flip=True,data_format="channels_last")
datagen_msk = ImageDataGenerator(horizontal_flip=True,data_format="channels_last")
image_generator = datagen.flow(X33_train,batch_size=4,seed=seed)
y_generator = datagen_msk.flow(Y_train,batch_size=4,seed=seed)
while True:
yield(image_generator.next(), y_generator.next())
Finally, i am trying to train my model,
#load data from disk
X_patches=np.load("./x_training.npy").astype(np.float32)
Y_labels_valid=np.load("./y_training.npy").astype(np.float32)
X33_train=X_patches
Y_train=Y_labels
train_generator=img_msk_gen(X33_train=X_patches,Y_train=Y_labels,seed= 9999)
model.fit_generator(train_generator,steps_per_epoch=len(X33_train)//batch_size,
verbose=1)
But, may due to custom generator problem it throws an error, Like this…
TypeError: Only integers, slices (`:`), ellipsis (`...`), tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got [1, 3]
If you have any recommendations or ideas, it will helpful for me.
My full model implementation is here in colab and data is here in Google Drive. Although similar type of question is available, I can’t solve my issue. Any kind of help would be greatly appreciated. Thanks, in advance.
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP