print("GPUは使えません。") if cuda: gpu_id = input('使用するGPUの番号を入れてください : ') os.environ["CUDA_VISIBLE_DEVICES"] = gpu_id device = torch.device('cuda:' + gpu_id if cuda else 'cpu') # 推定モデルの決定 p = 7 os.makedirs("output-images/p{0}".format(p), exist_ok=True) os.makedirs("parameters/p{0}".format(p), exist_ok=True) torch.manual_seed(opt.generator_seed) generator = models.LinearGenerator(p=p, input_dim=1, is_bias=False) torch.manual_seed(opt.predictor_seed) predictor = models.LinearPredictNet(p=p, input_dim=1, is_bias=True) # 訓練データを一つ用いて学習させる dataSeed = opt.data_seed # こいつをtrain:validation=900:100に分割する Data = trainDataSets[dataSeed] Data = torch.tensor(Data, dtype=torch.float) Data = Data.view(1, -1) trainData = Data[:, :900] valData = Data[:, 900:] # trainDataとvalDataを {𝑋𝑡}𝑡0𝑡=𝑡0−𝑝 ごとに取り出しやすいようにMatrixに変換する trainMatrix = [] for i in range(trainData.shape[1] - (p)): ans = trainData[:, i:i + p + 1].view(1, Data.shape[0], -1) trainMatrix.append(ans) trainMatrix = torch.cat(trainMatrix)
testData = Data[:, 1200:] trainMatrix = [] for i in range(trainData.shape[1] - (p + 1)): ans = trainData[:, i:i + p + 1].view(1, Data.shape[0], -1) trainMatrix.append(ans) trainMatrix = torch.cat(trainMatrix) valMatrix = [] for i in range(valData.shape[1] - (p + 1)): ans = valData[:, i:i + p + 1].view(1, Data.shape[0], -1) valMatrix.append(ans) valMatrix = torch.cat(valMatrix) torch.manual_seed(opt.network_seed) net = models.LinearPredictNet(p=p, input_dim=1, is_bias=opt.network_bias) # gpuが使えるかどうか cuda = True if torch.cuda.is_available() else False if cuda: print("GPUが使えます。") use_gpu = input('GPUを使いますか? (Yes:1, No:0) ----> ') cuda = bool(int(use_gpu)) else: print("GPUは使えません。") if cuda: gpu_id = input('使用するGPUの番号を入れてください : ') os.environ["CUDA_VISIBLE_DEVICES"] = gpu_id device = torch.device('cuda:' + gpu_id if cuda else 'cpu')