User Tools

Site Tools


cinderella_micrographs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
cinderella_micrographs [2019/12/10 08:44]
twagner created
cinderella_micrographs [2019/12/10 09:18]
twagner [Classify]
Line 1: Line 1:
 ====== How to use SPHIRE's Cinderella for micrograph selection ====== ====== How to use SPHIRE's Cinderella for micrograph selection ======
 +
 +This tutorial describes how to use Cinderella to sort micrographs. Unfortunately, we cannot provide a pretrained model yet. Therefore the first step is to train a model (see section //Training//) and to apply a model (see section //Classify//).
 +
 +
 +
 +==== Download & Install ====
 +You can find the download and installation instructions here: [[auto_2d_class_selection|Download and Installation]]
 +
 +
 +==== Training ====
 +
 +If you would like to train Cinderella with your own classes, you can easily do it.
 +First you have to separate your good and bad classes into separate files. Create two folders, one containing good micrographs (e.g ''GOOD_MICS/'') and one contain bad classes (e.g ''BAD_MICS/''). Both folders can contain subfolders.
 +
 +Then specify the paths into a config file like this:
 +
 +<code json config.json>
 +{
 + "model": {
 + "input_size": [512,512]
 + },
 +
 + "train": {
 + "batch_size": 6,
 + "good_path": "GOOD_MICS/",
 + "bad_path": "BAD_MICS/",
 + "pretrained_weights": "",
 + "saved_weights_name": "my_model.h5",
 + "learning_rate": 1e-4,
 + "nb_epoch": 100,
 + "nb_early_stop": 15
 + }
 +}
 +</code>
 +The fields have the following meaning:
 +  * **input_size**: This is the image size to which each micrograph is resized to.
 +  * **batch_size**: How many micrograph are in one mini-batch. If you have memory problems, you can try to reduce this value.
 +  * **good_path**: Path to folder with good micrographs.
 +  * **bad_path**: Path to folder with bad micrographs.
 +  * **pretrained_weights**: Path to weights that are used to initialize the network. It can be empty. As Cinderella is using the same network architecture as crYOLO, we are typically using the [[downloads:cryolo_1#general_phosaurusnet_models|general network of crYOLO]] as pretrained weights.
 +  * **saved_weights_name**: Final model filename
 +  * **learning_rate**: Learning rate, should not be changed.
 +  * **nb_epoch**: Maximum number of epochs to train. However, it will stop earlier (see nb_early_stop).
 +  * **nb_early_stop**: If the validation loss did not improve "nb_early_stop" times in a row, the training will stop automatically.
 +
 +The next step is to run the training:
 +
 +<code>
 +sp_cinderella_train.py -c example_config.json --gpu 1
 +</code>
 +
 +This will train a classification network on the GPU with ID=1. After the training finishes, you get a ''my_model.h5'' file. This can then be used to classfiy micrographs into good / bad categories.
 +
 +
 +==== Classify ====
 +Suppose you want to separate good and bad micrographs in the folder ''micrographs'' and you want to save a list with the filenames of the good / bad micrographgs into the folder ''output_folder''. Furthermore you want to use the model ''my_model.h5'' and the GPU with ID=1. Micrographs with a confidence bigger than 0.5 should be classified as good micrograph.
 +
 +This is the command to run:
 +
 +<code>
 +sp_cinderella_predict.py -i micrographs/ -w model.h5 -o output_folder/ -t 0.5 --gpu 1
 +</code>
 +
 +You will find the files ''bad.txt'' and ''good.txt'' in  your ''output_folder''.
cinderella_micrographs.txt ยท Last modified: 2020/08/28 07:35 by twagner