Skip to content

Commit

Permalink
add model_contribute_guide.md (PyTorchKorea#29)
Browse files Browse the repository at this point in the history
  • Loading branch information
KyubumShin committed Jul 31, 2022
1 parent 7fdca78 commit 34783bc
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions docs/model_contribute_guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Model Contributing Guide line
pytorch hub์— ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•˜๋Š” Contributing ๊ฐ€์ด๋“œ๋ผ์ธ ์ž…๋‹ˆ๋‹ค.

## ๊ธฐ์—ฌ๋ฐฉ๋ฒ•
[PyTorch ํ•œ๊ตญ์–ด ๋ชจ๋ธ ํ—ˆ๋ธŒ ์‚ฌ์ดํŠธ](https://pytorch.kr/hub/)์— ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์—ฌ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค

#### 1. ์ด์Šˆ ๋‚จ๊ธฐ๊ธฐ

(๋งค์šฐ ๋‚ฎ์€ ํ™•๋ฅ ๋กœ) ํ•ด๋‹น ๋ชจ๋ธ์ด ์ถ”๊ฐ€๋˜๋Š” ์ค‘์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— [๋ณธ ์ €์žฅ์†Œ์— ์ด์Šˆ](https://github.com/PyTorchKorea/hub-kr/issues)๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

ํ•ด๋‹น ๋ฌธ์ œ์ ์— ๋Œ€ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์ด๋ฏธ ๋…ผ์˜๋˜์—ˆ๊ฑฐ๋‚˜ ์ง„ํ–‰ ์ค‘์ธ Pull Request๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ ์ค‘์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์ƒˆ๋กœ ์ด์Šˆ๋ฅผ ๋งŒ๋“œ์‹œ๊ธฐ ์ „, ๋จผ์ € ๊ฒ€์ƒ‰์„ ํ•ด์ฃผ์‹œ๊ธฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ดํ›„, ์ƒˆ๋กœ ๋‚จ๊ฒจ์ฃผ์‹  ์ด์Šˆ์—์„œ ์ €์žฅ์†Œ ๊ด€๋ฆฌ์ž ๋ฐ ๋‹ค๋ฅธ ๋ฐฉ๋ฌธ์ž๋“ค์ด ํ•จ๊ป˜ ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด ํ† ์˜ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋˜๋Š” ์ด๋ฏธ ๊ด€๋ จ ์ด์Šˆ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ํ•ด๊ฒฐ ์ค‘์ด์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋ง๊ธ€์„ ํ†ตํ•ด ๊ธฐ์—ฌ๋ฅผ ์‹œ์ž‘ํ•จ์„ ์•Œ๋ ค์ฃผ์„ธ์š”.)

#### 2. ์ €์žฅ์†Œ ๋ณต์ œํ•˜๊ธฐ

์ƒˆ๋กœ์šด ๋ชจ๋ธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.
์ €์žฅ์†Œ ๋ณต์ œ๊ฐ€ ์ฒ˜์Œ์ด์‹œ๋ผ๋ฉด [GitHub์˜ ์ €์žฅ์†Œ ๋ณต์ œ ๊ด€๋ จ ๋„์›€๋ง](https://help.github.com/en/github/getting-started-with-github/fork-a-repo)์„ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”.


#### 3. ```hubconf.py``` ์ž‘์„ฑํ•˜๊ธฐ

```torch.hub.load```๋ฅผ ํ†ตํ•˜์—ฌ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ๋ชจ๋ธ์˜ ์ €์žฅ์†Œ์— ```hubconf.py```๊ฐ€ ์ถ”๊ฐ€๋˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

```python
dependencies = ['torch']


def model_name(*args, **kwargs):
"""
Docstring : torch.hub.help() ์— ๋‚˜ํƒ€ ๋‚  ๋ถ€๋ถ„
"""
# ๋ชจ๋ธ์„ ์ •์˜ํ•˜๊ณ , ์‚ฌ์ „ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜๋ฅผ ๋ชจ๋ธ์— ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
model = load_model(pretrained = True, **kwargs)
return model
```

```hubconf.py``` ๋Š” ๋‹ค์Œ์˜ ์š”์†Œ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์กฐ๊ฑด๋“ค์„ ๋งŒ์กฑํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

* ```dependencies``` : ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ์ž‘์„ฑํ•ด ๋‘๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
* ```docstring``` : ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋„์›€์„ ์ฃผ๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ```torch.hub.help``` ๋ฅผ ํ†ตํ•˜์—ฌ ์ถœ๋ ฅ ๋ฉ๋‹ˆ๋‹ค.
* entrypoint ํ•จ์ˆ˜๋“ค์€ ๋ชจ๋ธ(nn.Module)์ด๋‚˜ ์›ํ• ํ•œ ์ž‘์—…์„ ์œ„ํ•œ ์„œํฌํŠธํˆด์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
* torch.hub.list๋กœ ๋ณด์—ฌ์ง€๊ณ  ์‹ถ์ง€ ์•Š์€ ํ•จ์ˆ˜๋“ค์€ ์ ‘๋‘์‚ฌ์— ```_``` ๋ฌธ์ž๋ฅผ ๋ถ™์—ฌ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
* ์‚ฌ์ „ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜๋“ค์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด์„œ ```torch.hub.load_state_dict_from_url()``` ์ด์šฉํ•˜์—ฌ url๋กœ ๋ถ€ํ„ฐ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ [torch.hub docs](https://pytorch.org/docs/master/hub.html#publishing-models)๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

#### 4. ํ—ˆ๋ธŒ ๋ฌธ์„œ ์ž‘์„ฑ

๋ณต์‚ฌํ•œ hub kr์— ```<repo_owner>_<repo_name>_<title>.md``` ์˜ ํ˜•์‹์œผ๋กœ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ์˜ [ํ…œํ”Œ๋ฆฟ](https://github.com/PyTorchKorea/hub-kr/blob/master/docs/template.md)์— ๋งž์ถฐ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

#### 5. (๋‚ด ์ปดํ“จํ„ฐ์—์„œ) ๊ฒฐ๊ณผ ํ™•์ธํ•˜๊ธฐ

์ €์žฅ์†Œ์˜ ์ตœ์ƒ์œ„ ๊ฒฝ๋กœ์—์„œ `preview_hub.sh` ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ์ฝ”๋“œ ์‹คํ–‰ ์—†์ด `http://127.0.0.1:4000/` ๋กœ์ปฌ ์ฃผ์†Œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. \
์ด ๊ณผ์ •์—์„œ ์ˆ˜์ •ํ•œ ๋ฌธ์„œ ์ƒ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด Markdown ๋ฌธ๋ฒ•์„ ์ฐธ๊ณ ํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ณ ์ณ์ฃผ์„ธ์š”.

#### 6. Pull Request ๋งŒ๋“ค๊ธฐ

๋ฒˆ์—ญ์„ ์™„๋ฃŒํ•œ ๋‚ด์šฉ์„ ๋ณต์ œํ•œ ์ €์žฅ์†Œ์— Commit ๋ฐ Pushํ•˜๊ณ , Pull Request๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค. \
Pull Request๋ฅผ ๋งŒ๋“œ์‹œ๊ธฐ ์ „์— ์ด ๋ฌธ์„œ์— ํฌํ•จ๋œ [Pull Request ๋งŒ๋“ค๊ธฐ](#Pull-Request-๋งŒ๋“ค๊ธฐ) ๋ถ€๋ถ„์„ ๋ฐ˜๋“œ์‹œ ์ฝ์–ด์ฃผ์„ธ์š”. \
๋งŒ์•ฝ Pull Request ๋งŒ๋“ค๊ธฐ๊ฐ€ ์ฒ˜์Œ์ด์‹œ๋ผ๋ฉด [GitHub์˜ Pull Request ์†Œ๊ฐœ ๋„์›€๋ง](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) ๋ฐ [๋ณต์ œํ•œ ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ Pull Request ๋งŒ๋“ค๊ธฐ ๋„์›€๋ง](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)์„ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”

0 comments on commit 34783bc

Please sign in to comment.