예제 #1
0
def main(args):
    if not os.path.exists(args.tdir):
        os.mkdir(args.tdir)
        print('[Create] %s' % args.tdir)

    if args.cuda:
        assert torch.cuda.is_available()

    word_vocab, char_vocab, word_tensor, char_tensor, actual_maxwdlen = data_loader.load_data(
        args.ddir, 65, FILE_NAME_LIST)

    args.wvsize = word_vocab.size

    train_reader = data_loader.DataReader(word_tensor[FILE_NAME_LIST[0]],
                                          char_tensor[FILE_NAME_LIST[0]],
                                          args.batch, args.maxlen)
    valid_reader = data_loader.DataReader(word_tensor[FILE_NAME_LIST[1]],
                                          char_tensor[FILE_NAME_LIST[1]],
                                          args.batch, args.maxlen)
    test_reader = data_loader.DataReader(word_tensor[FILE_NAME_LIST[2]],
                                         char_tensor[FILE_NAME_LIST[2]],
                                         args.batch, args.maxlen)

    args.cvsize = char_vocab.size
    args.wvsize = word_vocab.size
    # preview_data(train_reader, word_vocab)

    if args.seed:
        torch.manual_seed(args.seed)

    ker_sizes = [int(item.strip()) for item in args.ker_wid[1:-1].split(',')]
    ker_feats = [int(item.strip()) for item in args.ker_num[1:-1].split(',')]
    c2w = sum(ker_feats)
    nlm = CNLM(cvsize=args.cvsize,
               cedim=args.cedim,
               wvsize=args.wvsize,
               wedim=args.wedim,
               cnn_size=c2w,
               hdim=args.hdim,
               kernel_sizes=ker_sizes,
               kernel_features=ker_feats,
               nhlayers=args.hlayers,
               nrlayers=args.rlayers,
               tie_weight=False,
               droprate=args.drop)

    print(nlm)

    if args.cuda:
        nlm.cuda()

    opt = optim.SGD(nlm.parameters(), lr=args.lr)

    train_eval(nlm, opt, train_reader, valid_reader, test_reader, args)
예제 #2
0
def train_algo(params):
    """
        Fetch the total data to train the model on
    """
    dataset = data.DataReader(params['data']['type'])
    
    if params['data']['type'] == 'sql':
        dataset.fetch_data(con=dbconfig.connections_[params['data']['source']](), query=params['data']['detail'])
    elif params['data']['type'] == 'file':
        dataset.fetch_data(file=params['data']['source'])
    
    data_ = data.TrainingData(dataset, target='Put', data_split=params['data']['data_split'])

    """
        Construct the MLP and optimizer arguments
    """

    mlp_args = {'data':data_, **params['algo']}

    """
        Define and train the network
    """
    mdl = mlp.MLP(**mlp_args)

    # train the network
    train_history = mdl.sgd_train(**params['train'], optim_options=params['optim'])
    
    # save the model
    mdl.save(params['results']['model_path'])

    # test the network
    test_results = mdl.test()

    # show results
    mdl.test_scatter(test_results, save_fig= params['results']['test_scatter'])
    mdl.plot_train_valid_curve(train_history, save_fig= params['results']['train_curve'])
예제 #3
0
#http://127.0.0.1:8050/
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import State
import plotly.graph_objects as go
from datetime import date
from dateutil.relativedelta import relativedelta
import data
import flask

dr = data.DataReader()
pos = dr.getPos()
nu = dr.getNu()
min_date = dr.getEarliestDate()
max_date = dr.getLatestDate()
max_date_p1 = dr.getLatestDateP1()
max_date_m1m = dr.getLatestDateM1M()

dropdown_nu = [{
    "label": "__all_transaction_types__",
    "value": "__all_transaction_types__"
}]
for entry in nu:
    dropdown_nu.append({"label": entry, "value": entry})

app = dash.Dash(__name__)
server = app.server

app.layout = html.Div([
    html.Label("Users:"),
예제 #4
0
                    type=int,
                    default=5,
                    help='negative samples per training example')
parser.add_argument(
    '--min_count',
    type=int,
    default=5,
    help='number of word occurrences for it to be included in the vocabulary')
parser.add_argument('--gpu', default='0', help='GPU to use')

args = parser.parse_args()

if not os.path.exists(args.save_dir):
    os.makedirs(args.save_dir)

my_data = data.DataReader(args.data, args.min_count)
dataset = data.Word2vecDataset(my_data, args.window_size, args.neg_num)
dataloader = torch.utils.data.DataLoader(dataset,
                                         batch_size=args.batch_size,
                                         collate_fn=dataset.collate)

if args.valid != None:
    valid_dataset = data.ValidDataset(my_data, args.valid, args.window_size,
                                      args.neg_num)
    valid_dataloader = torch.utils.data.DataLoader(
        valid_dataset,
        batch_size=args.batch_size,
        collate_fn=valid_dataset.collate)

vocab_size = len(my_data.word2id)
if args.model == 'sgns':
예제 #5
0
def BackTest(env, show_log=True, my_trick=False):
	observation = env.reset()
	while True:
		observation, done = game_step(env, observation, train=False,
									  show_log=show_log, my_trick=my_trick)
		if done:
			break


if __name__ == "__main__":

	start_date = "2011-01-01"
	end_date = "2020-12-31"

	panel_data = data.DataReader("TSLA", "yahoo", start_date, end_date)
	dataset_1 = pd.DataFrame(data=panel_data['Adj Close'])  # first step

	# training, testing stage_1
	for i in range(len(dataset_1)):
		if str(dataset_1.index[i]) == '2019-12-31 00:00:00':
			stage_1_training = dataset_1.iloc[:i + 1, :]
			stage_1_testing = dataset_1.iloc[i + 1:, :]

	index_data1 = Get_data(stage_1_training)

	env_list1 = []
	env_list2 = []
	env_list1.append(Stock(stage_1_training[31:], index_data1))
	env_list2.append(Stock(stage_1_testing[31:], index_data1))
예제 #6
0
import data
import matplotlib.pyplot as plt
from zipline.api import order, symbol, record, order_target
from zipline.algorithm import TradingAlgorithm
from zipline_poloniex.utils import setup_logging
import logging

# 1일 = 86400 / 5분 = 300 / 15분 = 900
gs = data.DataReader(currencyPair='USDT_BTC',
                     excahge='Poloniex',
                     start='2017.01.10 00:00:00',
                     end='2018.01.12 00:00:00',
                     period=300).make()

print('[*] 데이터 기초 정보')
print(gs.info())

print('[*] 종가 데이터만 셋팅')
gsData = gs[['close']]
print(gsData.head())

print('[*] 종가 컬럼명 변경')
gsData.columns = ['BTC']
print(gsData.head())

print('[*] 인덱스 타임 세계표준시로 변경')
gsData = gsData.tz_localize("UTC")
print(gsData)

__author__ = "Florian Wilhelm"
__copyright__ = "Florian Wilhelm"