help="batchを何回学習させる度にgeneratorの出力を保存するか") parser.add_argument("--network_bias", type=bool, default=True, help="networkにbiasを入れるかどうか。True/False") parser.add_argument("--data_seed", type=int, default=0, help="Dataの作成に用いる乱数のseed") opt = parser.parse_args() phi = [0.3, -0.4, 0.2, -0.5, 0.6, -0.1, 0.1] p = len(phi) Data = tsModel.SARIMA(a=phi, N=1400, random_seed=opt.data_seed, mu=0, sigma=2) Data = torch.tensor(Data, dtype=torch.float) Data = torch.tensor(Data) plt.figure(figsize=(13, 8)) plt.plot(Data) plt.title("ARモデルの人工データその" + str(opt.data_seed) + "\n$\phi^{\\ast}=" + str(phi) + ", \sigma^{\\ast}=2$") plt.savefig("images/AR7モデルの人工データその{0}.png".format(opt.data_seed)) plt.close() Data = Data.view(1, -1) trainData = Data[:, :900] valData = Data[:, 900:1000] testData = Data[:, 1200:] trainMatrix = []
# 真のモデルのパラメータ phi_ast = [0.3, -0.4, 0.2, -0.5, 0.6, -0.1, 0.1] p_ast = len(phi_ast) mu_ast = 0 sigma_ast = 2 # データセットの作成 trainT = 1000 n = 100 data_index = range(n) trainDataSets = [] for seed in data_index: trainData = tsModel.SARIMA(a=phi_ast, N=trainT, random_seed=seed, mu=mu_ast, sigma=sigma_ast) trainDataSets.append(trainData) # 学習する推定モデルの形状や学習方法なんかを決定します # 学習時のハイパラの決定(入力を受け付ける) parser = argparse.ArgumentParser() # ランダムシードについて parser.add_argument("--generator_seed", type=int, default=0, help="generatorのパラメータの初期値のシード") parser.add_argument("--discriminator_seed", type=int, default=0,
if cuda: gpu_id = input('使用するGPUの番号を入れてください : ') os.environ["CUDA_VISIBLE_DEVICES"] = gpu_id device = torch.device('cuda:' + gpu_id if cuda else 'cpu') torch.manual_seed(opt.generator_seed) generator = models.LinearGenerator(p=opt.p, input_dim=1, is_bias=False) torch.manual_seed(opt.discriminator_seed) discriminator = models.Discriminator( q=0, discriminator_hidden_unit=opt.discriminator_hidden_unit) # 人工データの作成 Data = tsModel.SARIMA(a=[0.3, -0.4, 0.3, -0.4, 0.3, -0.4, 0.3], N=1400, random_seed=opt.data_seed, sigma=2) Data = torch.tensor(Data, dtype=torch.float) plt.figure(figsize=(13, 8)) plt.plot(Data) plt.savefig(path + "/images/AR7モデルの人工データその{0}.png".format(opt.data_seed)) plt.close() Data = Data.view(1, -1) trainData = Data[:, :1000] valData = Data[:, 1000:1200] testData = Data[:, 1200:] trainMatrix = [] for i in range(trainData.shape[1] - (opt.p + 1)):