小编Mil*_* Lu的帖子

为什么 Pytorch 需要 DoubleTensor 而不是 FloatTensor?

从我在网上看到的所有内容来看,FloatTensorsPytorch 对所有内容都是默认设置,当我创建一个张量以传递给我的生成器模块时,它是FloatTensor一个DoubleTensor.

class Generator(nn.Module):
  def __init__(self):
    super(Generator, self).__init__()
    self.fully_connected = nn.Linear(100, 1024*4*4, bias=False)

  def forward(self, zvec):
    print(zvec.size())
    fc = self.fully_connected(zvec)
    return(fc.size())

gen = Generator();

gen(torch.from_numpy(np.random.normal(size=100)))
Run Code Online (Sandbox Code Playgroud)

其中产生

RuntimeError: Expected object of type torch.DoubleTensor but found type torch.FloatTensor for argument #2 'mat2'
Run Code Online (Sandbox Code Playgroud)

python pytorch tensor

2
推荐指数
1
解决办法
6948
查看次数

带有 requires_grad 参数的 torch.Tensor()

我不能使用带有 requires_grad 参数的 torch.Tensor()(火炬版本:0.4.1)

没有 requires_grad :

x = torch.Tensor([[.5, .3, 2.1]])
print(x)
> tensor([[0.5000, 0.3000, 2.1000]])
Run Code Online (Sandbox Code Playgroud)

使用 requires_grad=True 或 requires_grad=False :

x = torch.Tensor([[.5, .3, 2.1]], requires_grad=False)
print(x)
Traceback (most recent call last):
  File "D:/_P/dev/ai/pytorch/notes/tensor01.py", line 4, in <module>
    x = torch.Tensor([[.5, .3, 2.1]], requires_grad=False)
TypeError: new() received an invalid combination of arguments - got (list, requires_grad=bool), but expected one of:
 * (torch.device device)
 * (torch.Storage storage)
 * (Tensor other)
 * (tuple of ints size, torch.device device)
      didn't match …
Run Code Online (Sandbox Code Playgroud)

python pytorch tensor

2
推荐指数
1
解决办法
2422
查看次数

火炬。当最终张量中有多个值时可以使用 autograd 吗?

当最终张量中有多个值时可以使用 autograd 吗?

我尝试了以下方法。

x = torch.tensor([4.0, 5.0], requires_grad=True)
y = x ** 2

print(y)

y.backward()
Run Code Online (Sandbox Code Playgroud)

抛出错误

RuntimeError: grad can be implicitly created only for scalar outputs
Run Code Online (Sandbox Code Playgroud)

然而,以下工作。

x = torch.tensor([4.0, 5.0], requires_grad=True)
y = x ** 2
y = torch.sum(y)
print(y)

y.backward()
print(x.grad)
Run Code Online (Sandbox Code Playgroud)

输出为

tensor(41., grad_fn=<SumBackward0>)
tensor([ 8., 10.])
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了什么,或者我可以继续假设 autograd 仅在最终张量中有单个值时才有效?

python pytorch autograd

2
推荐指数
1
解决办法
823
查看次数

最小化 Tensorflow 中的函数

如何使用 tf.gradients 获取函数的梯度?当我使用 GradientDescentOptimizer.minimize() 时,以下正在工作,tf.gradients 似乎在 x^2+2 的派生处评估 1,即 2x

我错过了什么?

x = tf.Variable(1.0, trainable=True)
y = x**2 + 2

grad = tf.gradients(y, x)
#grad = tf.train.GradientDescentOptimizer(0.1).minimize(y)

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    grad_value = sess.run(grad)
    print(grad_value)
Run Code Online (Sandbox Code Playgroud)

python gradient tensorflow

2
推荐指数
1
解决办法
662
查看次数

即使使用 torch.no_grad(),params 的 require_grad 也是 True

我今天在使用 PyTorch 时遇到了一个奇怪的问题。

在检查with范围内的网络参数时,我期望requires_gradFalse,但显然情况并非如此,除非我自己明确设置所有参数。

代码

链接到网络 ->要点

net = InceptionResnetV2()

with torch.no_grad():

    for name, param in net.named_parameters():
        print("{} {}".format(name, param.requires_grad))
Run Code Online (Sandbox Code Playgroud)

上面的代码将告诉我所有参数仍然需要 grad,除非我明确指定param.requires_grad = False

我的torch版本:1.0.1.post2

python neural-network pytorch

2
推荐指数
1
解决办法
2385
查看次数

Java jbutton在一个arraylist中,我怎么知道哪一个被点击了

我有两个大小相同的arraylists,一个用于JButton,一个用于JTextField.单击按钮时,应更新相应的文本字段.我怎么能意识到这一点?

ps jcomponents对(jbutton + jtextfield)的数量不固定.它们旨在由用户添加或删除.但是,它们必须处于固定顺序.

    ArrayList<JButton> buttonList = new ArrayList<JButton>();
    ArrayList<JTextField> textFieldList = new ArrayList<JTextField>();

    private JButton createButton(){
    JButton button = new JButton("Choose File");
    buttonList.add(button);
    button.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent event){
                    textField = textFieldList.get(i)
                    textField.setText("show updats");
                }
            }       
    );      
    return button;
}
Run Code Online (Sandbox Code Playgroud)

我怎么知道JButton ArrayList中的索引"i"?

java swing arraylist jbutton actionlistener

1
推荐指数
1
解决办法
2529
查看次数

如何解释"const unique_ptr"

const unique_ptr<int> upi{new int{4}};
cout << ++*upi << '\n';
Run Code Online (Sandbox Code Playgroud)

似乎upi是一个const smart pointer.在int这点仍然可以修改.如果我想要什么申报intconst

const unqiue_ptr<int> const upi{new int{4}};    //Error: duplicate const
Run Code Online (Sandbox Code Playgroud)

c++ const unique-ptr

1
推荐指数
2
解决办法
426
查看次数

Bullet 可以处理液体吗?

PhysX FleX很酷。但是我更喜欢Bullet。但是,我在那里找不到任何类似的功能。

有什么建议么?

bullet bulletphysics

1
推荐指数
1
解决办法
1961
查看次数

Keras中sigmoid激活函数的使用

我有一个由 18260 个输入字段和 4 个输出组成的大数据集。我正在使用 Keras 和 Tensorflow 构建一个可以检测可能输出的神经网络。

但是,我尝试了很多解决方案,但除非我sigmoid在除第一个模型层之外的所有模型层中都使用激活函数,否则准确率不会超过 55% ,如下所示:

def baseline_model(optimizer= 'adam' , init= 'random_uniform'):
# create model
model = Sequential()
model.add(Dense(40, input_dim=18260, activation="relu", kernel_initializer=init))
model.add(Dense(40, activation="sigmoid", kernel_initializer=init))
model.add(Dense(40, activation="sigmoid", kernel_initializer=init))
model.add(Dense(10, activation="sigmoid", kernel_initializer=init))
model.add(Dense(4, activation="sigmoid", kernel_initializer=init))
model.summary()
# Compile model
model.compile(loss='sparse_categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
return model
Run Code Online (Sandbox Code Playgroud)

使用sigmoid激活在所有层是否正确?使用 sigmoid 时准确率达到 99.9%,如上所示。所以我想知道模型实现是否有问题。

python neural-network keras tensorflow sigmoid

1
推荐指数
1
解决办法
1万
查看次数

当我们有 model.to('CUDA') 时,为什么我们需要 image.to('CUDA')

我正在上一门课程PyTorch。我想知道为什么我们需要单独告诉torch.utils.data.DataLoader它在运行的设备上输出。如果模型已经启动,CUDA为什么它不自动相应地更改输入?这种模式对我来说似乎很有趣:

model.to(device)

for ii, (inputs, labels) in enumerate(trainloader):

    # Move input and label tensors to the GPU
    inputs, labels = inputs.to(device), labels.to(device)
Run Code Online (Sandbox Code Playgroud)

是否存在我希望模型在 GPU 上运行但我的输入在 CPU 模式上运行的用例,反之亦然?

python pytorch

1
推荐指数
1
解决办法
7769
查看次数