Giter Club home page Giter Club logo

learningtorank's People

Contributors

7cd avatar

Stargazers

 avatar  avatar

Watchers

 avatar

learningtorank's Issues

Этап data_load

На примере этого куска кода:

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 - т.е. лишний раз перезапускать не будет 

Ошибка на этапе data_split

(myvenv) (base) mnrozhkov LearningToRank dev ✗ ❯ python src/pipelines/data_split.py --config=params.yaml
Traceback (most recent call last):
  File "src/pipelines/data_split.py", line 44, in <module>
    data_split(config_path=args.config)
  File "src/pipelines/data_split.py", line 30, in data_split
    save_npz(config['data_split']['train_csr_path'], X_train)
  File "/Users/mnrozhkov/mlrepa_school/mipt/LearningToRank/myvenv/lib/python3.8/site-packages/scipy/sparse/_matrix_io.py", line 70, in save_npz
    np.savez_compressed(file, **arrays_dict)
  File "<__array_function__ internals>", line 5, in savez_compressed
  File "/Users/mnrozhkov/mlrepa_school/mipt/LearningToRank/myvenv/lib/python3.8/site-packages/numpy/lib/npyio.py", line 686, in savez_compressed
    _savez(file, args, kwds, True)
  File "/Users/mnrozhkov/mlrepa_school/mipt/LearningToRank/myvenv/lib/python3.8/site-packages/numpy/lib/npyio.py", line 712, in _savez
    zipf = zipfile_factory(file, mode="w", compression=compression)
  File "/Users/mnrozhkov/mlrepa_school/mipt/LearningToRank/myvenv/lib/python3.8/site-packages/numpy/lib/npyio.py", line 112, in zipfile_factory
    return zipfile.ZipFile(file, *args, **kwargs)
  File "/Users/mnrozhkov/opt/anaconda3/lib/python3.8/zipfile.py", line 1251, in __init__
    self.fp = io.open(file, filemode)
FileNotFoundError: [Errno 2] No such file or directory: 'data/processed/split/X_train.npz'
  • в документации не указано, что нужна папка split

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.