第一部分:网站
第二部分:使用方式
提问方式:帮我绘制一个Graphviz Online 可以识别的流程图
示例:
digraph workflow {
rankdir=TB;
node [shape=box, style="rounded,filled", fillcolor="#E0FFFF", color="#004D40"];
edge [color="#004D40"];
start [label="开始", shape=circle, fillcolor="#9f9"];
end [label="结束", shape=circle, fillcolor="#f99"];
subgraph cluster_init {
label="初始化阶段";
style=filled;
fillcolor="#F5F5DC";
param_parse [label="解析命令行参数"];
gpu_setup [label="设置GPU环境"];
process_print [label="打印进程信息"];
param_init [label="初始化训练参数"];
log_setup [label="配置日志系统"];
data_prepare [label="准备数据集\n(Dirichlet分布划分)"];
ray_init [label="初始化Ray框架"];
create_ps [label="创建ParameterServer"];
checkpoint [label="加载检查点"];
create_workers [label="创建DataWorkers"];
}
subgraph cluster_train {
label="训练阶段";
style=filled;
fillcolor="#FFFACD";
train_loop [label="训练循环"];
select_workers [label="随机选择部分Worker"];
local_update [label="执行本地模型更新"];
aggregate [label="参数服务器聚合"];
check_interval [label="达到评估间隔?", shape=diamond];
evaluate_model [label="计算测试准确率"];
save_best [label="保存最佳模型"];
log_record [label="记录日志"];
early_stop [label="无提升计数+1\n达到500次停止?", shape=diamond];
}
subgraph cluster_final {
label="收尾阶段";
style=filled;
fillcolor="#E6E6FA";
save_result [label="保存最终结果"];
shutdown_ray [label="关闭Ray环境"];
}
start -> param_parse;
param_parse -> gpu_setup;
gpu_setup -> process_print;
process_print -> param_init;
param_init -> log_setup;
log_setup -> data_prepare;
data_prepare -> ray_init;
ray_init -> create_ps;
create_ps -> checkpoint;
checkpoint -> create_workers;
create_workers -> train_loop;
train_loop -> select_workers;
select_workers -> local_update;
local_update -> aggregate;
aggregate -> check_interval;
check_interval -> evaluate_model [label="是"];
evaluate_model -> save_best;
save_best -> log_record;
log_record -> early_stop;
check_interval -> early_stop [label="否"];
early_stop -> train_loop [label="继续"];
early_stop -> save_result [label="停止"];
save_result -> shutdown_ray;
shutdown_ray -> end;
}
效果: