Skip to content

Commit

Permalink
add deco package
Browse files Browse the repository at this point in the history
  • Loading branch information
sph3rex committed Jul 5, 2019
1 parent 2393d81 commit 0ebc1ad
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 7 deletions.
17 changes: 14 additions & 3 deletions cli.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import numpy as np
from deco import concurrent

from lib.RLTrader import RLTrader
from lib.cli.RLTraderCLI import RLTraderCLI
Expand All @@ -8,16 +9,26 @@
trader_cli = RLTraderCLI()
args = trader_cli.get_args()


@concurrent(processes=args.proc_number)
def run_concurrent_optimize(trader: RLTrader, args):
trader.optimize(args.trials, args.trials, args.parallel_jobs)


if __name__ == '__main__':
logger = init_logger(__name__, show_debug=args.debug)
trader = RLTrader(**vars(args), logger=logger)

if args.command == 'optimize':
trader.optimize(n_trials=args.trials, n_parallel_jobs=args.parallel_jobs)
run_concurrent_optimize(trader, args)
elif args.command == 'train':
trader.train(n_epochs=args.epochs)
elif args.command == 'test':
trader.test(model_epoch=args.model_epoch, should_render=args.no_render)
elif args.command == 'opt-train-test':
trader.optimize(args.trials, args.parallel_jobs)
trader.train(n_epochs=args.train_epochs, test_trained_model=args.no_test, render_trained_model=args.no_render)
run_concurrent_optimize(trader, args)
trader.train(
n_epochs=args.train_epochs,
test_trained_model=args.no_test,
render_trained_model=args.no_render
)
3 changes: 3 additions & 0 deletions lib/RLTrader.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

from os import path
from typing import Dict

from deco import concurrent
from stable_baselines.common.base_class import BaseRLModel
from stable_baselines.common.policies import BasePolicy, MlpPolicy
from stable_baselines.common.vec_env import DummyVecEnv, SubprocVecEnv
Expand Down Expand Up @@ -160,6 +162,7 @@ def optimize_params(self, trial, n_prune_evals_per_trial: int = 2, n_tests_per_e

return -1 * last_reward

@concurrent
def optimize(self, n_trials: int = 100, n_parallel_jobs: int = 1, *optimize_params):
try:
self.optuna_study.optimize(
Expand Down
4 changes: 3 additions & 1 deletion lib/cli/RLTraderCLI.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import argparse
import os

import multiprocessing

class RLTraderCLI:
def __init__(self):
Expand Down Expand Up @@ -32,10 +32,12 @@ def __init__(self):
opt_train_test_parser.add_argument('--train-epochs', type=int, default=10, help='Train for how many epochs')
opt_train_test_parser.add_argument('--no-render', action='store_false', help='Should render the model')
opt_train_test_parser.add_argument('--no-test', action='store_false', help='Should test the model')
opt_train_test_parser.add_argument('--proc-number', type=int, default=multiprocessing.cpu_count(), help='How many processes to spawn')

optimize_parser = subparsers.add_parser('optimize', description='Optimize model parameters')
optimize_parser.add_argument('--trials', type=int, default=1, help='Number of trials')
optimize_parser.add_argument('--parallel-jobs', type=int, default=1, help='How many jobs in parallel')
optimize_parser.add_argument('--proc-number', type=int, default=multiprocessing.cpu_count(), help='How many processes to spawn')

optimize_parser.add_argument('--verbose-model', type=int, default=1, help='Verbose model', dest='model_verbose')

Expand Down
3 changes: 2 additions & 1 deletion requirements.no-gpu.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ ta
statsmodels==0.10.0rc2
empyrical
tensorflow
ccxt
ccxt
deco
3 changes: 2 additions & 1 deletion requirements.tests.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
-r requirements.no-gpu.txt
pytest
pytest
deco
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ statsmodels==0.10.0rc2
empyrical
tensorflow-gpu
ccxt
psycopg2
psycopg2
deco

0 comments on commit 0ebc1ad

Please sign in to comment.