-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerate_multilabel_component.yaml
48 lines (48 loc) · 2.49 KB
/
generate_multilabel_component.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
name: Multilabel training
inputs:
- {name: tagset, type: String}
- {name: created_tags, type: String}
outputs:
- {name: modfile, type: String}
- {name: model, type: String}
implementation:
container:
image: lkorver/praxi-vw-base:0.320
command:
- sh
- -ec
- |
program_path=$(mktemp)
printf "%s" "$0" > "$program_path"
python3 -u "$program_path" "$@"
- "def _make_parent_dirs_and_return_path(file_path: str):\n import os\n \
\ os.makedirs(os.path.dirname(file_path), exist_ok=True)\n return file_path\n\
\ndef multilabel_training(tagset_path, created_tags_path, modfile_path, model_path):\n\
\ ''''''\n import main\n import os\n import json\n import pickle\n\
\ import time\n\n args = main.get_inputs() \n data_loaded = []\n\n\
\ with open(tagset_path, 'rb') as reader:\n data_loaded = pickle.load(reader)\n\
\n print(len(data_loaded))\n\n # with open(created_tags_path, 'r') as\
\ stream:\n # for line in stream:\n # temp = json.loads(line)\n\
\ # if (type(temp) != None):\n # data_loaded.append(temp)\n\
\n # print(len(data_loaded))\n\n model = main.multilabel_train(data_loaded,\
\ args)\n modfile = model.vw_modelfile\n os.popen('cp {0} {1}'.format(modfile,\
\ modfile_path))\n with open(model_path, 'wb') as modfile:\n pickle.dump(model,\
\ modfile)\n\n # with open(test_tags_path, 'wb') as testfile:\n # \
\ pickle.dump(testdat, testfile)\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Multilabel\
\ training', description='')\n_parser.add_argument(\"--tagset\", dest=\"tagset_path\"\
, type=str, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"\
--created-tags\", dest=\"created_tags_path\", type=str, required=True, default=argparse.SUPPRESS)\n\
_parser.add_argument(\"--modfile\", dest=\"modfile_path\", type=_make_parent_dirs_and_return_path,\
\ required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"--model\"\
, dest=\"model_path\", type=_make_parent_dirs_and_return_path, required=True,\
\ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n\
_outputs = multilabel_training(**_parsed_args)\n"
args:
- --tagset
- {inputPath: tagset}
- --created-tags
- {inputPath: created_tags}
- --modfile
- {outputPath: modfile}
- --model
- {outputPath: model}