项目地址:https://github.com/Microsoft/NeuronBlocks
在下载位置的model_visualizer 文件夹下面有相关的可视化的介绍
1、相关包的安装
首先进行相关包的安装:
pip install graphviz
pip install web.py==0.40.dev0
安装成功的界面如下所示:
2、代码的运行
进入到指定的位置:\NeuronBlocks\model_visualizer\server>
运行main.py程序代码,运行代码的命令如下所示:
python main.py 8080
运行的结果如下所示:
在windows下的浏览器输入http://localhost:8080
若是linux系统,则输入http://<your_machine_ip>:8080
本人是在windows下进行的,结果如下所示:
在上述的输入框中输入相对应的JSON内容就可以了,我使用的是下面的JSON:
{
"license": "Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.",
"tool_version": "1.1.0",
"model_description": "This model is used for query query pairs task. It achieved acc:0.8324 on dev set",
"inputs": {
"use_cache": true,
"dataset_type": "classification",
"data_paths": {
"train_data_path": "./dataset/QQP/train.tsv",
"valid_data_path": "./dataset/QQP/dev.tsv",
"test_data_path": "./dataset/QQP/dev.tsv",
"pre_trained_emb": "./dataset/GloVe/glove.840B.300d.txt"
},
"file_with_col_header": true,
"add_start_end_for_seq": true,
"file_header": {
"id": 0,
"qid1": 1,
"qid2": 2,
"question1_text": 3,
"question2_text": 4,
"label": 5
},
"model_inputs": {
"question1": ["question1_text"],
"question2": ["question2_text"]
},
"target": ["label"]
},
"outputs":{
"save_base_dir": "./models/question_pairs_bigru/",
"model_name": "model.nb",
"train_log_name": "train.log",
"test_log_name": "test.log",
"predict_log_name": "predict.log",
"predict_fields": ["prediction", "confidence"],
"predict_output_name": "predict.tsv",
"cache_dir": ".cache.QQP/"
},
"training_params": {
"vocabulary": {
"min_word_frequency": 1
},
"optimizer": {
"name": "SGD",
"params": {
"lr": 0.15,
"momentum": 0.9,
"nesterov": true
}
},
"lr_decay": 0.95,
"minimum_lr": 0.005,
"epoch_start_lr_decay": 1,
"use_gpu": true,
"batch_size": 32,
"batch_num_to_show_results": 300,
"max_epoch": 30,
"valid_times_per_epoch": 5
},
"architecture":[
{
"layer": "Embedding",
"conf": {
"word": {
"cols": ["question1_text", "question2_text"],
"dim": 300
}
}
},
{
"layer_id": "question_1",
"layer": "BiGRU",
"conf": {
"hidden_dim": 128,
"dropout": 0,
"num_layers": 2
},
"inputs": ["question1"]
},
{
"layer_id": "question_2",
"layer": "BiGRU",
"conf": {
"hidden_dim": 128,
"dropout": 0,
"num_layers": 2
},
"inputs": ["question2"]
},
{
"layer_id": "pooling_1",
"layer": "Pooling",
"conf": {
"pool_axis": 1,
"pool_type": "max"
},
"inputs": ["question_1"]
},
{
"layer_id": "pooling_2",
"layer": "Pooling",
"conf": {
"pool_axis": 1,
"pool_type": "max"
},
"inputs": ["question_2"]
},
{
"layer_id": "comb_qq",
"layer": "Combination",
"conf": {
"operations": ["origin", "difference", "dot_multiply"]
},
"inputs": ["pooling_1", "pooling_2"]
},
{
"output_layer_flag": true,
"layer_id": "output",
"layer": "Linear",
"conf": {
"hidden_dim": [256, 2],
"activation": "PReLU",
"batch_norm": true,
"last_hidden_activation": false,
"last_hidden_softmax": true
},
"inputs": ["comb_qq"]
}
],
"loss": {
"losses": [
{
"type": "CrossEntropyLoss",
"conf": {
"size_average": true
},
"inputs": ["output","label"]
}
]
},
"metrics": ["accuracy","micro_f1","macro_f1"]
}
数据同样来源于github的下的JSON,结果显示如下所示:
后台显示如下所示:
上面仅是个人的一点学习总结,希望对于同道者有所帮助,后续会继续研究代码,欢迎交流