Этап data_load
Opened this issue · 0 comments
mnrozhkov commented
На примере этого куска кода:
def process_dataset(raw_dataset_path, processed_dataset_dir):
train_csr_path = os.path.join(processed_dataset_dir, 'train_csr.npz')
train_y_path = os.path.join(processed_dataset_dir, 'train_y.npy')
train_qid_path = os.path.join(processed_dataset_dir, 'train_qid.npy')
test_csr_path = os.path.join(processed_dataset_dir, 'test_csr.npz')
test_y_path = os.path.join(processed_dataset_dir, 'test_y.npy')
test_qid_path = os.path.join(processed_dataset_dir, 'test_qid.npy')
if all(map(os.path.exists, [train_csr_path, train_y_path, train_qid_path, \
test_csr_path, test_y_path, test_qid_path])):
return
...
- process_dataset() находится в
src/data/dataset.py
и импортируется вsrc/pipelines/dataload.py
- кажется, что будет удобнее, чтобы
process_dataset()
ничего не знал о локальных путях и названиях файлов, об этом пусть заботится пайплайнdataload.py
(мы для этого передаем ему params.yaml) - тогда
process_dataset
станет простой функцией, которую можно применить для процессинга всех 4 файлов
- кажется, что будет удобнее, чтобы
- по поводу вот этого кода:
if all(map(os.path.exists, [train_csr_path, train_y_path, train_qid_path, \
test_csr_path, test_y_path, test_qid_path])):
return
- если я правильно понял, то он нужен, чтобы лишний раз не запускать процессинг
- а что если мы поменяли что-от в процессинге и нам нужно его перезапустить? в т.ч. поменяв какой-то параметр в params.yaml? эту логику может выполнять DVC ! Если оформить пайплайн через DVC, и сказать, что у этапа `data_load` есть на выходе 4 файла, то всякий раз при перезапуске DVC будет следить, изменились ли а) выходные данные и б) параметры процессинга в params.yaml - т.е. лишний раз перезапускать не будет