Step-by-Step: Details
Предварительная обработка повторов
cd preprocess
Разбор информации о повторах
python parse_replay_info.py
--replays_paths $REPLAY_FOLDER_PATH_1$;$REPLAY_FOLDER_PATH_2$;...;$REPLAY_FOLDER_PATH_N$
--save_path $SAVE_PATH$
--n_instance [N_PROCESSES]
--batch_size [BATCH_SIZE]
Код для чтения обработанных файлов:
import json
from google.protobuf.json_format import Parse
from s2clientprotocol import sc2api_pb2 as sc_pb
with open(REPLAY_INFO_PATH) as f:
info = json.load(f)
REPLAY_PATH = info['path']
REPLAY_INFO_PROTO = Parse(info['info'], sc_pb.ResponseReplayInfo())
ResponseReplayInfo определён здесь.
Фильтрация повторов
python preprocess.py
--infos_path $REPLAY_INFO_PATH$
--save_path $SAVE_PATH$
--min_duration [MIN_DURATION]
--max_duration [MAX_DURATION]
--min_apm [MIN_APM]
--min_mmr [MIN_MMR]
Формат обработанных файлов [JSON]:
[[REPLAY_PATH_1, REPLAY_INFO_PATH_1],
[REPLAY_PATH_2, REPLAY_INFO_PATH_2],
...,
[REPLAY_PATH_N, REPLAY_INFO_PATH_N]]
Разбор повторов
cd parse_replay
Извлечение действий
python extract_actions.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--save_path $SAVE_PATH$
--n_instance [N_PROCESSES]
--batch_size [BATCH_SIZE]
--step_mul [STEP_SIZE]
--width [WORLD_WIDTH]
--map_size [MAP_SIZE]
Код для чтения обработанных файлов:
import json
from google.protobuf.json_format import Parse
from s2clientprotocol import sc2api_pb2 as sc_pb
with open(ACTION_PATH) as f:
actions = json.load(f)
for actions_per_frame in actions:
for action_str in actions_per_frame:
action = Parse(action_str, sc_pb.Action())
Action определён здесь.
Выборка действий
python sample_actions.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--parsed_replays $PARSED_REPLAYS$
--infos_path $REPLAY_INFOS$
--step_mul [STEP_SIZE]
--skip [SKIP_FRAMES]
Формат обработанных файлов [JSON]
[FRAME_ID_1, FRAME_ID_2, ..., FRAME_ID_N]
Извлечение выборочных наблюдений
python parse_replay.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--save_path $SAVE_PATH$
--n_instance [N_PROCESSES]
--batch_size [BATCH_SIZE]
--width [WORLD_WIDTH]
--map_size [MAP_SIZE]
Код для чтения GlobalInfos файлов:
import json
from google.protobuf.json_format import Parse
from s2clientprotocol import sc2api_pb2 as sc_pb
with open(GLOBAL_INFO_PATH) as f:
global_info = json.load(f)
GAME_INFO = Parse(global_info['game_info'], sc_pb.ResponseGameInfo())
DATA_RAW = Parse(global_info['data_raw'], sc_pb.ResponseData())
ResponseGameInfo определён здесь, а ResponseData — здесь.
Код для чтения SampledObservations файлов
import stream
from s2clientprotocol import sc2api_pb2 as sc_pb
OBS = [obs for obs in stream.parse(SAMPLED_OBSERVATION_PATH), sc_pb.ResponseObservation]
ResponseObsevation определён здесь.
Извлечение глобальных признаков
python replay2global_features.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--parsed_replay_path: $PARSED_REPLAYS$
--step_mul [STEP_SIZE]
Формат обработанных файлов [JSON]:
[state_1, state_2, ..., state_N]
state_t = {...} [READ THE REST OF THE CODE]
``` ### Построение датасета
```sh
cd extract_features
python replay_stat.py
--hq_replay_path $PREFILTERED_REPLAY_FOLDER$
--parsed_replay_path $PARSED_REPLAYS$
--race [RACE]
Файлы статистики с постфиксом human.json доступны для чтения человеком.
python global_feature_vector.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--parsed_replay_path: $PARSED_REPLAYS$
python spatial_feature_tensor.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--parsed_replay_path: $PARSED_RPLAYS$
--step_mul [STEP_SIZE]
--n_workers [#PROCESSES]
python split.py
--hq_replay_set $PREFILTERED_REPLAY_LIST$
--root $ROOT_PARSED_REPLAYS$
--parsed_replay_path $PARSED_REPLAYS$
--save_path $SAVE_PATH$
--ratio [TRAIN:VAL:TEST]
--seed [RANDOM_SEED]
Формат обработанных файлов [JSON]:
[{RACE_1: [{"global__path": GLOBAL_FEATURE_PATH,
"spatial_path_S": SPATIAL_FEATURE_PATH_S,
"spatial_path_G": SPATIAL_FEATURE_PATH_G}, ...],
RACE_2: [{...}, ...]}, {...}, ...]
ПРИМЕЧАНИЕ: Предварительно разделённые обучающий, проверочный и тестовый наборы доступны по ссылке Здесь.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )