# Save the model ############################################################################### cnn.save_model_json(model_export_path, 'model_json') cnn.save_model_weights(model_export_path, 'model_weights') cnn.save_model_single_file(model_export_path, 'model_single') #%%############################################################################ # Load the model ############################################################################### if load_model == True: import_path = os.path.join(os.getcwd(), 'model_export', '2019-06-12_21-46-36') #cnn.load_model_single_file(import_path, 'model_single') cnn.load_model_json(import_path, 'model_json', 'model_weights') #%%############################################################################ # Predict some data ############################################################################### rand_int = np.random.randint(low=0, high=np.size(X_test_data, axis=0)) X_test = X_test_data[rand_int, ] y_test = y_test_data[rand_int, ] y_pred = cnn.predict_sample(X_test) plt_slice = 8 if border == None: plt.imshow(X_test[8, :, :]) else: X_inner = impro.get_inner_slice(X_test, border)
#path_to_spheroid = os.path.join('..', '..', '..', 'Datensaetze', 'Aufnahmen_und_Segmentierungen', 'Datensatz2', category, spheroid_name) category = 'none' spheroid_name = 'X_scaled.nrrd' path_to_spheroid = os.path.join('..', '..', '..', 'Datensaetze', 'OpenSegSPIM_Beispieldaten', 'Neurosphere', spheroid_name) #path_to_spheroid = os.path.join('Skalierung', 'NPC1', 'C3-2-1_1-3_upper.nrrd') #%%############################################################################ # Initialize the CNN ############################################################################### cnn = CNN(linear_output_scaling_factor=linear_output_scaling_factor, standardization_mode=standardization_mode) cnn.load_model_json(model_import_path, 'model_json', 'best_weights') #%%############################################################################ # Predict the density-map ############################################################################### spheroid_new, density_map, num_of_cells = cnn.predict_density_map( path_to_spheroid=path_to_spheroid, patch_sizes=patch_sizes, strides=strides, border=cut_border, padding=padding) plt.figure() plt.imshow(spheroid_new[int(spheroid_new.shape[0] / 2), ]) plt.figure() plt.imshow(density_map[int(density_map.shape[0] / 2), ]) print('Number of cells = ', num_of_cells)
train_spheroids=test_spheroids, val_spheroids=test_spheroids, test_spheroids=test_spheroids) # Load unstandardized test data X_test_data, y_test_data = datatools.load_data(path_to_dataset=path_to_dataset, data_list=test_files, input_shape=data_shape, standardization_mode=None, border=border) ############################################################################### # Load the model ############################################################################### #cnn.load_model_single_file(import_path, 'model_single') cnn = CNN(linear_output_scaling_factor=linear_output_scaling_factor, standardization_mode=standardization_mode) cnn.load_model_json(model_import_path, 'model_json', weights) # Evaluate the model on the test data summary = cnn.compile_model(loss=loss, optimizer=optimizer, metrics=metrics) test_loss_best_weights = cnn.evaluate_model(X_test=X_test_data, y_test=y_test_data, batch_size=batch_size) print(test_loss_best_weights) # Export the value of the test-loss test_loss_export_path = os.path.join('test_loss_best_weights.txt') with open(test_loss_export_path, 'w') as file: for l in range(len(test_loss_best_weights)): file.write(str(test_loss_best_weights[l]) + '\n')