Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```
- def ConvolutionNetworks(kernel_size=3, stride_size=2):
- def conv(model):
- model = Conv2D(24, (9, 9), strides=(stride_size, stride_size),activation='relu',input_shape=(100, 100, 3), data_format='channels_last')(model)
- model = BatchNormalization()(model)
- model = Conv2D(24, (7, 7), strides=(stride_size, stride_size),activation='relu')(model)
- model = BatchNormalization()(model)
- model = Conv2D(24, (kernel_size, kernel_size), strides=(stride_size, stride_size),activation='relu')(model)
- model = BatchNormalization()(model)
- model = Conv2D(24, (5, 5), strides=(1, 1),activation='relu')(model)
- model = BatchNormalization()(model)
- return model
- return conv
- ```
- ```
- def build_tag(conv):
- d = K.int_shape(conv)[2]
- tag = np.zeros((d,d,2))
- print("tagging in process")
- for i in range(d):
- for j in range(d):
- tag[i,j,0] = float(int(i%d))/(d-1)*2-1
- tag[i,j,1] = float(int(j%d))/(d-1)*2-1
- tag = K.variable(tag)
- tag = K.expand_dims(tag, axis=0)
- batch_size = K.shape(conv)[0]
- tag = K.tile(tag, [batch_size,1,1,1])
- print("tagging done")
- return Input(tensor=tag)
- ```
- ```
- visual_scene = Input((100, 100, 3))
- visual_conv = ConvolutionNetworks()(visual_scene)
- tag = build_tag(visual_conv)
- visual_conv = Concatenate()([tag, visual_conv])
- visual_RN = RelationNetworks(visual_conv)
- visual_out = Dense(4, activation='softmax')(visual_RN)
- VisualModel = Model(inputs=[tag,visual_scene], outputs=visual_out)
- print("model made")
- ```
- ```
- try:
- parallel_model = multi_gpu_model(VisualModel, cpu_merge=True,
- cpu_relocation=True,gpus=2)
- print("Training using multiple GPUs..")
- except:
- parallel_model = model
- print("Training using single GPU or CPU..")
- ```
- ```
- datagen=ImageDataGenerator(rescale=1./255)
- train_generator=datagen.flow_from_dataframe(dataframe=training_df,
- directory=image_dir, x_col="image", y_col="lesion",
- class_mode="categorical",target_size=(IMG_SIZE,IMG_SIZE),
- batch_size=batchsize,shuffle=True)
- ```
- ```
- parallel_model.fit_generator(generator = train_generator,
- steps_per_epoch = (training_df.shape[0])//batchsize,
- validation_data = validation_generator,
- validation_steps = (validation_df.shape[0])//batchsize,
- epochs = 30,verbose=1,callbacks=
- [checkpoint, csv_logger,tensorboard],
- use_multiprocessing=True,workers=workers)
Add Comment
Please, Sign In to add comment