havakv / havakv/pycox

Is there really an added value to couple the pycox to torchtuples?

Open
#25 13 comments 3 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
995
Forks
203
PR merge metrics
No merged PRs in 30d

Description

While torchtuples simplifies the interfaces of code usage quite a lot, it appears that the interface of functions highly depends on the implementation, as well as the semantics of torchtuples, while in many cases, especially for research purposes, it might be in favor to expose the detailed model implementation and the training/testing procedure, and the encapsulation of both inside torchtuples may significantly reduce the overall readability and flexibility, e.g. quite huge amount of time may be required to write code for bridging.

But if I understand the codes correctly, it is also true that the `base.Model` can take pre-trained `nn.Modules` and perform predictions directly, which means any external models can be brought into the pipeline of pycox, which is quite neat. It might be possible to decouple the pycox from torchtuples to some extent, i.e. under the assumption that the model is always nn.Module, and the input/target as tensors, while another wrapper can be put into effect to bridge pycox and torchtuples, which means the flexibility retain to use pipeline with or without torchtuples.

Still, really appreciate the effort. I gotta say it is amazing that eventually there is an awesome pytorch version of DeepSurv here:)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the current base.Model interface and how it depends on torchtuples, then trace the handling of pre-trained nn.Modules and tensor inputs. Compare the existing pipeline with the proposed independent nn.Module path. Done requires an agreed decoupling design and clear compatibility boundaries; this issue does not name specific files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.