def gpu_init(queue): global gpu_id gpu_id = queue.get() os.environ["CUDA_VISIBLE_DEVICES"] = str(gpu_id) import tensorflow as tf from tensorflow.python.client import device_lib local_device_protos = device_lib.list_local_devices() gpu_list = [x.name for x in local_device_protos if x.device_type == 'GPU'] process = multiprocessing.current_process() print(gpu_id, process.pid, gpu_list) global volume_model import net volume_model = net.model3d((64, 64, 64), sz=config.feature_sz, alpha=config.feature_alpha, do_features=True) volume_model.load_weights(weights_file)
for n in range(num_test_volumes): test_result = volume_model.predict(test_volumes[n:n+1], batch_size=1)[:,:,:,0] test_p = net.sigmoid_activations(test_result) fpr = np.count_nonzero(test_p[0,:,:,:] > p_threshold) / test_volumes[n].size fpr_list.append(fpr) fpr90 = np.count_nonzero(test_p[0,:,:,:] > 0.880797) / test_volumes[n].size fpr90_list.append(fpr90) return np.mean(fpr_list), np.mean(fpr90_list), p_threshold, fpr_list, fpr90_list, p_list history = {'loss':[], 'acc':[], 'fpr':[], 'p_threshold':[], 'p_list':[]} history['version'] = subprocess.check_output('git describe --always --dirty', shell=True).decode('ascii').strip() history['argv'] = sys.argv model = net.model3d((16, 16, 16), sz=config.feature_sz, alpha=config.feature_alpha) print(model.summary()) volume_model = net.model3d((64, 64, 64), sz=config.feature_sz, alpha=config.feature_alpha, do_features=True) def get_optimizer(lr): if config.optimizer == 'rmsprop': optimizer = RMSprop(lr=lr) elif config.optimizer == 'adam': optimizer = Adam(lr=lr) elif config.optimizer == 'nadam': optimizer = Nadam(lr=lr) elif config.optimizer == 'sgd': optimizer = SGD(lr=lr, momentum=0.9, nesterov=True) return optimizer model.compile(loss='binary_crossentropy', metrics=['accuracy'], optimizer=get_optimizer(config.lr))
16:16 + 32, None] test_nodules = datagen.preprocess(test_nodules) if config.do_downscale: test_nodules = skimage.transform.downscale_local_mean(test_nodules, (1, 2, 2, 2, 1), clip=False) test_y = np.concatenate((np.zeros( (len(X_benign_nodules_test), )), np.ones((len(X_cancer_nodules_test), )))) history = {'loss': [], 'acc': [], 'val_loss': [], 'val_acc': []} history['version'] = subprocess.check_output( 'git describe --always --dirty', shell=True).decode('ascii').strip() history['argv'] = sys.argv model = net.model3d(config.net_input_vsize, sz=config.feature_sz, alpha=config.feature_alpha) print(model.summary()) def get_optimizer(lr): if config.optimizer == 'rmsprop': optimizer = RMSprop(lr=lr) elif config.optimizer == 'adam': optimizer = Adam(lr=lr) elif config.optimizer == 'nadam': optimizer = Nadam(lr=lr) elif config.optimizer == 'sgd': optimizer = SGD(lr=lr, momentum=0.9, nesterov=True) return optimizer