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 = np.reshape(x_data, (-1, 1, 6)) y_data = np.reshape(y_data, (-1, 1)) 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 cnn = CNN(input, output, [1,30, 30, -1, 10], [hidden, hidden2, hidden3, hidden4, hidden5], kernel_size=2, stride=2, padding=1, batch_size = batch_size, softmax=False) for step, loss in cnn.learn(x_data, y_data, epoch=epoch, learning_rate=learning_rate, loss_func=MSELoss): if step % 1000 == 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(cnn, name+'.pkl')
from datetime import datetime