def modelTrain(x_data, y_data): # now = datetime.utcnow().strftime("%Y%m%d") # model_dir = "model/{}/".format(now) model_dir = "Model/Regression/" + save_date + "/" name = model_dir + gas_type + "_reg" try: if not (os.path.isdir(model_dir)): os.makedirs(os.path.join(model_dir)) except OSError as e: if e.errno != errno.EEXIST: raise start = timeit.default_timer() before = 0 x_data = torch.Tensor(x_data).float() y_data = torch.Tensor(y_data).float() input = len(x_data[0]) hidden = 100 hidden2 = 500 hidden3 = 100 hidden4 = 300 hidden5 = 500 output = 1 epoch = 20000 learning_rate = 0.001 batch_size = 10 dnn = DNN(input, output, [hidden, hidden2, hidden3, hidden4, hidden5], softmax=False) for step, loss in dnn.learn(x_data, y_data, epoch=epoch, learning_rate=learning_rate, batch_size=batch_size, loss_func=MSELoss): if step % 100 == 0: gap = loss.tolist() - before before = loss.tolist() pick = timeit.default_timer() time_gap = pick - start print('step : %d, loss : %.10f, loss gap = %.10f, seconds = %d' % (step, loss.tolist(), gap, time_gap)) if loss == 0: gap = loss.tolist() - before pick = timeit.default_timer() time_gap = pick - start break print('step : %d, loss : %.10f, loss gap = %.10f, seconds = %d' % (step, loss.tolist(), gap, time_gap)) save_model(dnn, name + '.pkl')
def modelTrain(x_data,y_data,name): start = timeit.default_timer() before = 0 x_data = torch.Tensor(x_data).float() y_data = torch.Tensor(y_data).float() input = len(x_data[0]) hidden = 200 hidden2 = 300 hidden3 = 300 hidden4 = 200 hidden5 = 100 output = 4 epoch = 10000 learning_rate = 0.01 batch_size = 10 dnn = DNN(input, output, [hidden,hidden2,hidden3,hidden4,hidden5],softmax=True) for step, loss in dnn.learn(x_data, y_data, epoch=epoch, learning_rate=learning_rate, batch_size=batch_size, loss_func=MSELoss): if step % 10 == 0: gap = loss.tolist() - before before = loss.tolist() pick = timeit.default_timer() time_gap = pick-start print('step : %d, loss : %.10f, loss gap = %.10f, seconds = %d' %(step,loss.tolist(),gap,time_gap)) # if loss ==0 or gap==0: # gap = loss.tolist() - before # pick = timeit.default_timer() # time_gap = pick - start # print('step : %d, loss : %.10f, loss gap = %.10f, seconds = %d' % (step, loss.tolist(),gap,time_gap)) # break print('step : %d, loss : %.10f, loss gap = %.10f, seconds = %d' % (step, loss.tolist(), gap, time_gap)) save_model(dnn, name+'.pkl')
from datetime import datetime