PyTorchによるrandnでの乱数固定
乱数を発生させる前にtorch.manual_seedを置く
# 直前に置く torch.manual_seed(42) nn.Parameter(torch.randn(1, 50 + 1, 768)) >> Parameter containing: tensor([[[ 1.9269, 1.4873, 0.9007, ..., -1.6034, -0.4298, 0.5762], [ 0.3444, -3.1016, -1.4587, ..., 0.2200, 0.3249, 1.3190], [-0.8497, -0.6987, -0.2052, ..., -0.0298, 1.2715, 1.0849], ..., [-0.6430, -0.1612, -1.5933, ..., -0.3602, -1.0423, 0.0702], [ 0.0594, 0.7516, -0.2885, ..., 0.9389, -0.7241, -0.4666], [ 0.5249, -0.0187, 0.5637, ..., 1.8743, -0.9375, 1.6950]]], requires_grad=True) # 2回以上実行するときも直前に置くことで同じ値の乱数が発生 torch.manual_seed(42) nn.Parameter(torch.randn(1, 50 + 1, 768)) >> Parameter containing: tensor([[[ 1.9269, 1.4873, 0.9007, ..., -1.6034, -0.4298, 0.5762], [ 0.3444, -3.1016, -1.4587, ..., 0.2200, 0.3249, 1.3190], [-0.8497, -0.6987, -0.2052, ..., -0.0298, 1.2715, 1.0849], ..., [-0.6430, -0.1612, -1.5933, ..., -0.3602, -1.0423, 0.0702], [ 0.0594, 0.7516, -0.2885, ..., 0.9389, -0.7241, -0.4666], [ 0.5249, -0.0187, 0.5637, ..., 1.8743, -0.9375, 1.6950]]], requires_grad=True) # 直前に無い場合は別の乱数になるので注意 nn.Parameter(torch.randn(1, 50 + 1, 768)) >> Parameter containing: tensor([[[-0.6672, -1.7791, 1.9137, ..., 0.6422, -0.4615, 0.8588], [-1.4310, 0.7049, 0.2331, ..., -0.3112, 0.1357, -0.3704], [ 0.2174, -0.3104, -0.2272, ..., -0.5745, 0.4291, -1.0543], ..., [-0.0828, -0.2698, -0.6782, ..., 0.4300, 0.8262, 0.0927], [ 1.1733, 0.6565, -0.5008, ..., -0.3682, 0.0783, -0.6028], [-0.4723, 0.5906, 1.0406, ..., -2.0031, 0.2319, 1.0350]]], requires_grad=True)
ディスカッション
コメント一覧
まだ、コメントがありません