아래의 방법을 활용하기 전에, Command Line IPython 인터프리터와 py(Script) 인터프리터는 작동방식이 다릅니다.
그렇기 때문에 커맨드 라인 환경에서는 잘 작동해도, py파일을 직접 실행시킬 땐 작동하지 않을 수 있습니다(주로 함수 호출할 때).
import error: no module named omegaconf
이럴 때는 단순하게 다시 그냥 주피터 노트북에서
>>> !pip install omegaconf
를 실행해주면 되긴 합니다만, 그냥 방법을 못 찾아서 위와 같은 방식으로 경로를 다시 잡아주는 것 뿐입니다(임시 방편).
가령, cmd창에서 py파일을
python demo.py single --config-path configs/cocostuff164k.yaml
--model_path ...
로 실행해야 한다면,
주피터 노트북에서는
>>> !python demo.py single --config-path configs/cocostuff164k.yaml
--model_path ...
로 실행해주면 됩니다.
Python처리를 위해 magic command %%python
을 활용하면 됩니다.
가령,
python hello.py hello --name Max --count 3
을 실행시켜야 할 경우,
%%python
import sys
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
help='The person to greet.')
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
with open('echo.txt', 'w') as fobj:
for x in range(count):
click.echo('Hello %s!' % name)
if __name__ == '__main__':
# first element is the script name, use empty string instead
sys.argv = ['', '--name', 'Max', '--count', '3']
hello()
출처 : https://stackoverflow.com/questions/47820040/using-click-library-in-jupyter-notebook-cell
parser = argparse.ArgumentParser()
parser.add_argument('--dataset', default='Video', type=str)
parser.add_argument('--train_dir', default='train', type=str)
parser.add_argument('--batch_size', default=128, type=int)
parser.add_argument('--lr', default=0.001, type=float)
parser.add_argument('--maxlen', default=50, type=int)
parser.add_argument('--hidden_units', default=50, type=int)
parser.add_argument('--num_blocks', default=2, type=int)
parser.add_argument('--num_epochs', default=201, type=int)
parser.add_argument('--num_heads', default=1, type=int)
parser.add_argument('--dropout_rate', default=0.5, type=float)
parser.add_argument('--l2_emb', default=0.0, type=float)
# args = parser.parse_args() > 기존(cmd)
args = parser.parse_args(args=[]) > 변경(notebook)