标题说明了,如何更改Torch REPL中的工作目录?我尝试使用os.execute('cd some_dir')调用,但这不起作用,如此处所示.
th> pwd()
--prints:/ home/user/Code
th> os.execute('cd ..')
--prints:true exit 0
th> pwd()
- print:/ home/user/Code
其中pwd()是一个调用os.execute('pwd')的便捷函数.
我使用itorch笔记本构建了nn模型.
model = nn.Sequential()
model:add(nn.Reshape(ninputs))
model:add(nn.Linear(ninputs,noutputs))
Run Code Online (Sandbox Code Playgroud)
输入数据到模型
output = model:forward(input)
Run Code Online (Sandbox Code Playgroud)
然后,我打印模型并得到了这个.
print(model)
nn.Sequential {
[input -> (1) -> (2) -> output]
(1): nn.Reshape(3072)
(2): nn.Linear(3072 -> 10)
}
{
gradInput : DoubleTensor - empty
modules :
{
1 :
nn.Reshape(3072)
{
_input : DoubleTensor - empty
nelement : 3072
train : true
output : DoubleTensor - size: 3072
gradInput : DoubleTensor - empty
size : LongStorage - size: 1
_gradOutput : DoubleTensor - empty
batchsize : LongStorage - size: 2 …Run Code Online (Sandbox Code Playgroud) 给定Torch中的一维张量(torch.Tensor),其中包含可以比较的值(例如浮点数),我们如何提取该张量中前k个值的索引?
除了蛮力方法外,我还在寻找Torch / lua提供的一些API调用,它可以有效地执行此任务。
我想在Lua中并行遍历多个表.我可以这样做:
for i in range(#table1)
pprint(table1[i])
pprint(table2[i])
end
Run Code Online (Sandbox Code Playgroud)
但我更喜欢python的东西zip:
for elem1, elem2 in zip(table1, table2):
pprint(elem1)
pprint(elem2)
end
Run Code Online (Sandbox Code Playgroud)
在标准的Lua中是否有这样的东西(或者至少在火炬包装的任何东西中?).
我有一些使用 pytorch 的代码,它们在我的 IDE (pycharm) 中运行良好。
为了研究,我尝试从 jupyter notebook 运行它。
笔记本中的代码:
from algorithms import Argparser
from algorithms import Session
def main():
print("main started")
args = Argparser.parse()
session = Session(args)
session.run()
Run Code Online (Sandbox Code Playgroud)
包看起来像:
|-algorithms
|---__init__.py
|---Argparser.py
|---Session.py
|---<many more files that are being used by Session>.py
Run Code Online (Sandbox Code Playgroud)
其中一些文件确实如此 import torch
在笔记本中运行代码时,我得到
NameError Traceback(最近一次调用)在 1 from algorithm import Argparser ----> 2 from algorithm import Session 3 def main(): 4 print("main started") 5 args = Argparser.parse()
D:\git\stav\stav-rl\algorithms\Session.py in 12 13 ---> 14 from algorithm.Episode import …
我尝试在 pytorch 中使用 view() 但我无法输入 3 个参数。我不知道为什么它一直出现这个错误?谁能帮我这个?
def forward(self, input):
lstm_out, self.hidden = self.lstm(input.view(len(input), self.batch_size, -1))
Run Code Online (Sandbox Code Playgroud) 我正在 PyTorch 中实现一个简单的前馈神经 newtork。但是我想知道是否有更好的方法来向网络添加灵活的层数?也许通过在循环中命名它们,但我听说那是不可能的?
目前我正在这样做
import torch
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self, input_dim, output_dim, hidden_dim):
super(Net, self).__init__()
self.input_dim = input_dim
self.output_dim = output_dim
self.hidden_dim = hidden_dim
self.layer_dim = len(hidden_dim)
self.fc1 = nn.Linear(self.input_dim, self.hidden_dim[0])
i = 1
if self.layer_dim > i:
self.fc2 = nn.Linear(self.hidden_dim[i-1], self.hidden_dim[i])
i += 1
if self.layer_dim > i:
self.fc3 = nn.Linear(self.hidden_dim[i-1], self.hidden_dim[i])
i += 1
if self.layer_dim > i:
self.fc4 = nn.Linear(self.hidden_dim[i-1], self.hidden_dim[i])
i += 1
if self.layer_dim > i: …Run Code Online (Sandbox Code Playgroud) 这里有没有人知道该torch.squeeze函数是否尊重批次(例如第一)维度?从一些内联代码来看,它似乎没有......但也许其他人比我更了解内部工作原理。
顺便说一句,潜在的问题是我有 shape 的张量(n_batch, channel, x, y, 1)。我想用一个简单的函数删除最后一个维度,这样我最终会得到一个(n_batch, channel, x, y).
重塑当然是可能的,甚至可以选择最后一个轴。但我想将此功能嵌入到一个层中,以便我可以轻松地将它添加到一个ModuleList或Sequence对象中。
编辑:刚刚发现对于 Tensorflow (2.5.0) 函数tf.linalg.diag确实尊重批次维度。仅供参考,您使用的每个功能可能会有所不同
我正在尝试加载state_dict我在 Google Colab GPU 上训练的模型,这是我加载模型的代码:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = models.resnet50()
num_ftrs = model.fc.in_features
model.fc = nn.Linear(num_ftrs, n_classes)
model.load_state_dict(copy.deepcopy(torch.load("./models/model.pth",device)))
model = model.to(device)
model.eval()
Run Code Online (Sandbox Code Playgroud)
这是错误:
state_dict = state_dict.copy()
AttributeError: 'function' 对象没有属性 'copy'
火炬:
>>> import torch
>>> print (torch.__version__)
1.4.0
>>> import torchvision
>>> print (torchvision.__version__)
0.5.0
Run Code Online (Sandbox Code Playgroud)
请帮助我到处搜索都无济于事
[完整错误详情][1] https://i.stack.imgur.com/s22DL.png
我是 pytorch geometry 的新手,尝试将其安装到我的计算机上但失败了,所以我尝试在 Google Colab 上运行代码。根据上一个问题(这对我没有帮助,我不确定是不是同样的问题):
Google Colab 上的 PyTorch Geometric CUDA 安装问题
我做了:
!pip install --upgrade torch-scatter
!pip install --upgrade torch-sparse
!pip install --upgrade torch-cluster
!pip install --upgrade torch-spline-conv
!pip install torch-geometric
!pip install torch-cluster==latest+cu101 -f https://s3.eu-central-1.amazonaws.com/pytorch-geometric.com/whl/torch-1.4.0.html
!pip install torch-scatter==latest+cu101 torch-sparse==latest+cu101 torch-spline-conv==latest+cu101 -f https://s3.eu-central-1.amazonaws.com/pytorch-geometric.com/whl/torch-1.4.0.html
Run Code Online (Sandbox Code Playgroud)
他们打印:
Successfully installed torch-cluster-1.5.4
Successfully installed torch-scatter-2.0.4 torch-sparse-0.6.1 torch-spline-conv-1.2.0
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行时
import torch_geometric.datasets as datasets
Run Code Online (Sandbox Code Playgroud)
我得到:
RuntimeError: Detected that PyTorch and torch_sparse were compiled with different CUDA versions. PyTorch has CUDA version 10.1 and torch_sparse …Run Code Online (Sandbox Code Playgroud)