在pytorch中分配变量
Assign variable in pytorch
我想知道下面的代码是否可行,但现在使用的是 pytorch,其中 dtype = torch.cuda.FloatTensor。有直接的代码 python(使用 numpy): 基本上我想获得产生最小适应度值的 x 的值。
import numpy as np
import random as rand
xmax, xmin = 5, -5
pop = 30
x = (xmax-xmin)*rand.random(pop,1)
y = x**2
[minz, indexmin] = np.amin(y), np.argmin(y)
best = x[indexmin]
这是我的尝试:
import torch
dtype = torch.cuda.FloatTensor
def fit (x):
return x**2
def main():
pop = 30
xmax, xmin = 5, -5
x = (xmax-xmin)*torch.rand(pop, 1).type(dtype)+xmin
y = fit(x)
[miny, indexmin] = torch.min(y,0)
best = x[indexmin]
main()
我将变量 best 定义为索引等于 indexmin 的 x 值的最后一部分不起作用。我在这里做错了什么。
出现以下信息:RuntimeError:
expecting vector of indices at /opt/conda/conda-bld/pytorch_1501971235237/work/pytorch-0.1.12/torch/lib/THC/generic/THCTensorIndex.cu:405
您可以简单地按照以下步骤进行操作。
import torch
dtype = torch.cuda.FloatTensor
def main():
pop, xmax, xmin = 30, 5, -5
x = (xmax-xmin)*torch.rand(pop, 1).type(dtype)+xmin
y = torch.pow(x, 2)
[miny, indexmin] = y.min(0)
best = x.squeeze()[indexmin] # squeeze x to make it 1d
main()
我想知道下面的代码是否可行,但现在使用的是 pytorch,其中 dtype = torch.cuda.FloatTensor。有直接的代码 python(使用 numpy): 基本上我想获得产生最小适应度值的 x 的值。
import numpy as np
import random as rand
xmax, xmin = 5, -5
pop = 30
x = (xmax-xmin)*rand.random(pop,1)
y = x**2
[minz, indexmin] = np.amin(y), np.argmin(y)
best = x[indexmin]
这是我的尝试:
import torch
dtype = torch.cuda.FloatTensor
def fit (x):
return x**2
def main():
pop = 30
xmax, xmin = 5, -5
x = (xmax-xmin)*torch.rand(pop, 1).type(dtype)+xmin
y = fit(x)
[miny, indexmin] = torch.min(y,0)
best = x[indexmin]
main()
我将变量 best 定义为索引等于 indexmin 的 x 值的最后一部分不起作用。我在这里做错了什么。
出现以下信息:RuntimeError:
expecting vector of indices at /opt/conda/conda-bld/pytorch_1501971235237/work/pytorch-0.1.12/torch/lib/THC/generic/THCTensorIndex.cu:405
您可以简单地按照以下步骤进行操作。
import torch
dtype = torch.cuda.FloatTensor
def main():
pop, xmax, xmin = 30, 5, -5
x = (xmax-xmin)*torch.rand(pop, 1).type(dtype)+xmin
y = torch.pow(x, 2)
[miny, indexmin] = y.min(0)
best = x.squeeze()[indexmin] # squeeze x to make it 1d
main()