이 저장소에는 keras.io 웹 사이트 생성에 쓰이는 코드가 담겨 있다.
pip install -r requirements.txt
cd scripts
python autogen.py make
python autogen.py serve
도커가 있다면 (도커 GPU 버전 필요치 않음) 다음처럼 실행할 수 있다.
docker build -t keras-io . && docker run --rm -p 8000:8000 keras-io
처음에는 이미지와 의존성을 당겨오느라 시간이 좀 걸리지만 이후로는 훨씬 빨리 동작한다.
도커를 써서 테스트하는 또 다른 방식은 Makefile을 이용하는 것이다.
make container-test
이 명령은 문서 서버를 담은 도커 이미지를 만들어서 실행한다.
Are you interested in submitting new examples for publication on keras.io? We welcome your contributions! Please read the information below about adding new code examples.
We are currently interested in the following examples.
Keras code examples are implemented as tutobooks.
A tutobook is a script available simultaneously as a notebook, as a Python file, and as a nicely-rendered webpage.
Its source-of-truth (for manual edition and version control) is
its Python script form, but you can also create one by starting
from a notebook and converting it with the command nb2py
.
Text cells are stored in markdown-formatted comment blocks.
the first line (starting with """
) may optionally contain a special
annotation, one of:
shell
: execute this block while prefixing each line with!
.invisible
: do not render this block.
The script form should start with a header with the following fields:
Title: (title)
Author: (could be `Authors`: as well, and may contain markdown links)
Date created: (date in yyyy/mm/dd format)
Last modified: (date in yyyy/mm/dd format)
Description: (one-line text description)
To see examples of tutobooks, you can check out any .py
file in examples/
or guides/
.
- Save the
ipynb
file to local disk. - Convert the file to a tutobook by running:
(assuming you are in the
scripts/
directory)
python tutobooks.py nb2py path_to_your_nb.ipynb ../examples/vision/script_name.py
This will create the file examples/vision/script_name.py
.
- Open it, fill in the headers, and generally edit it so that it looks nice.
NOTE THAT THE CONVERSION SCRIPT MAY MAKE MISTAKES IN ITS ATTEMPTS TO SHORTEN LINES. MAKE SURE TO PROOFREAD THE GENERATED .py IN FULL. Or alternatively, make sure to keep your lines reasonably-sized (<90 char) to start with, so that the script won't have to shorten them.
- Run
python autogen.py add_example vision/script_name
. This will generate an ipynb and markdown rendering of your example, creating files inexamples/vision/ipynb
,examples/vision/md
, andexamples/vision/img
. Do not modify any of these files by hand; only the original Python script should ever be edited manually. - Submit a PR adding
examples/vision/script_name.py
(only the.py
, not the generated files). Get a review and approval. - Once the PR is approved, add to the PR the files created by the
add_example
command. Then we will merge the PR.
- Format the script with
black
:black script_name.py
- Add tutobook header
- Put the script in the relevant subfolder of
examples/
(e.g.examples/vision/script_name
) - Run
python autogen.py add_example vision/script_name
. This will generate an ipynb and markdown rendering of your example, creating files inexamples/vision/ipynb
,examples/vision/md
, andexamples/vision/img
. Do not modify any of these files by hand; only the original Python script should ever be edited manually. - Submit a PR adding
examples/vision/script_name.py
(only the.py
, not the generated files). Get a review and approval. - Once the PR is approved, add to the PR the files created by the
add_example
command. Then we will merge the PR.
You can locally preview what the example looks like by running:
cd scripts
python autogen.py add_example vision/script_name
(Assuming the tutobook file is examples/vision/script_name.py
.)
NOTE THAT THIS COMMAND WILL ERROR OUT IF ANY CELLS TAKES TOO LONG TO EXECUTE. In that case, make your code lighter/faster. Remember that examples are meant to demonstrate workflows, not train state-of-the-art models. They should stay very lightweight.
Then serving the website:
python autogen.py make
python autogen.py serve
And navigating to 0.0.0.0:8000/examples
.
The contents of the following folders should not be modified by hand:
site/*
sources/*
templates/examples/*
templates/guides/*
examples/*/md/*
,examples/*/ipynb/*
,examples/*/img/*
guides/md/*
,guides/ipynb/*
,guides/img/*
These are the only files that should be edited by hand:
templates/*.md
, with the exception oftemplates/examples/*
andtemplates/guides/*
examples/*/*.py
guides/*.py
theme/*
scripts/*.py