|
{ |
|
"dataset_reader": { |
|
"class_name": "basic_classification_reader", |
|
"x": "text", |
|
"y": "sentiment", |
|
"data_path": "/train/", |
|
"train": "train.csv", |
|
"valid": "valid.csv" |
|
}, |
|
"dataset_iterator": { |
|
"class_name": "basic_classification_iterator", |
|
"seed": 42 |
|
}, |
|
"chainer": { |
|
"in": [ |
|
"x" |
|
], |
|
"in_y": [ |
|
"y" |
|
], |
|
"pipe": [ |
|
{ |
|
"id": "classes_vocab", |
|
"class_name": "simple_vocab", |
|
"fit_on": [ |
|
"y" |
|
], |
|
"save_path": "custom_bert/classes.dict", |
|
"load_path": "custom_bert/classes.dict", |
|
"in": "y", |
|
"out": "y_ids" |
|
}, |
|
{ |
|
"class_name": "transformers_bert_preprocessor", |
|
"vocab_file": "vocab.txt", |
|
"do_lower_case": false, |
|
"max_seq_length": 512, |
|
"in": ["x"], |
|
"out": ["tokens", "subword_tokens", "subword_tok_ids", "startofword_markers", "attention_mask"] |
|
}, |
|
{ |
|
"class_name": "transformers_bert_embedder", |
|
"id": "my_embedder", |
|
"bert_config_path": "config.json", |
|
"truncate": false, |
|
"load_path": "custom_bert", |
|
"in": ["subword_tok_ids", "startofword_markers", "attention_mask"], |
|
"out": ["word_emb", "subword_emb", "max_emb", "mean_emb", "pooler_output"] |
|
}, |
|
{ |
|
"in": "y_ids", |
|
"out": "y_onehot", |
|
"class_name": "one_hotter", |
|
"depth": "#classes_vocab.len", |
|
"single_vector": true |
|
}, |
|
{ |
|
"in": [ |
|
"word_emb" |
|
], |
|
"in_y": [ |
|
"y_onehot" |
|
], |
|
"out": [ |
|
"y_pred_probas" |
|
], |
|
"main": true, |
|
"class_name": "keras_classification_model", |
|
"save_path": "custom_bert/model", |
|
"load_path": "custom_bert/model", |
|
"embedding_size": "#my_embedder.dim", |
|
"n_classes": "#classes_vocab.len", |
|
"kernel_sizes_cnn": [ |
|
3, |
|
5, |
|
7 |
|
], |
|
"filters_cnn": 512, |
|
"optimizer": "Adam", |
|
"learning_rate": 0.01, |
|
"learning_rate_decay": 0.1, |
|
"loss": "categorical_crossentropy", |
|
"last_layer_activation": "softmax", |
|
"coef_reg_cnn": 1e-3, |
|
"coef_reg_den": 1e-2, |
|
"dropout_rate": 0.5, |
|
"dense_size": 100, |
|
"model_name": "cnn_model" |
|
}, |
|
{ |
|
"in": "y_pred_probas", |
|
"out": "y_pred_ids", |
|
"class_name": "proba2labels", |
|
"max_proba": true |
|
}, |
|
{ |
|
"in": "y_pred_ids", |
|
"out": "y_pred_labels", |
|
"ref": "classes_vocab" |
|
} |
|
], |
|
"out": [ |
|
"y_pred_labels" |
|
] |
|
}, |
|
"train": { |
|
"epochs": 3, |
|
"batch_size": 16, |
|
"metrics": [ |
|
"accuracy", |
|
"f1_macro", |
|
"f1_weighted", |
|
{ |
|
"name": "roc_auc", |
|
"inputs": ["y_onehot", "y_pred_probas"] |
|
} |
|
], |
|
"validation_patience": 1, |
|
"val_every_n_epochs": 1, |
|
"log_every_n_epochs": 1, |
|
"show_examples": false, |
|
"evaluation_targets": [ |
|
"train", |
|
"valid" |
|
], |
|
"class_name": "nn_trainer" |
|
} |
|
} |
|
|