A pytorch implemented classifier for Multiple-Label classification.
You can easily train, test your multi-label classification model and visualize the training process.
Below is an example visualizing the training of one-label classifier. If you have more than one attributes, no doubt that all the loss and accuracy curves of each attribute will show on web browser orderly.
| Loss | Accuracy | 
|---|---|
|  |  | 
- 
data preparation module consisting of reading and transforming data. All data store in data.txtandlabel.txtwith some predefined format explained below.
- scripts to build multi-label classifier model. Your model templets should put here.
- train test and visualization options define here
- 
- webvisualizer: a visdom based visualization tool for visualizing loss and accuracy of each attribute
- util: miscellaneous functions used in project
- html: used in webvisualizer.
 
- 
- mnist: mnist dataset arranged as defined data format.
- celeba: exactract some of attributes of CelebA dataset
 
Data Format Explanation.
- label.txt
 Store attribute information including its name and value. label.txt example. Lines in label.txt stack as follows:
- For each
attribute:
number of attribute values;id of attribute;name attribute- For each
attribute valuebelonging to currentattribute:
id of attibute_value;name of attribute value
Note: mind the difference between attribute and attribute value.
- data.txt
Store objects information including attribute id and bounding box and so on. Each line is one json dict recording one object. data.txt example
"box":object boundingbox.'x': top_left.x ,'y':top_left.y,'w': width of box,'h': height of box.
"image_id": image identifier. An image content dependent hash value.
"box_id": object identidier. Combineimage_id,box['x'],box['y'],box['w'],box["h"]with_.
"size": image width and height. Used for varifying whether box is valid.
"id": list of ids. Store multi-label attributes ids, the order is the same as the attributes' order inlabel.txt
- Visdom 0.1.7.2
- Pytorch 0.3.1.post2
- Snapshot loss and accuracy records
- Support visualize multi top K accuracy
- Support model finetuning
- Complete test module
- Add switch to control loss and accuracy curves displaying on one plot or multiple
- Train and Test Log
Part of codes and models refer to some other OSS listed below for thanks: