给定一个字典,例如:
records = {0:{'name':'John', 'salary':'5000'}, 1:{'name':'Bob', 'salary':'3500'}}
Run Code Online (Sandbox Code Playgroud)
如果我想获取并存储(在 csv 中)一个数据框,例如:
name salary
John 5000
Run Code Online (Sandbox Code Playgroud)
通过使用记录 [0] 作为访问内部字典的方式,我该怎么做?
我试过了:
df = pd.DataFrame(records[0], index=[0])
df= pd.DataFrame(list(records[0].values()), columns=list(records[0].keys()))
df= pd.DataFrame.from_dict(records[key], orient='columns')
Run Code Online (Sandbox Code Playgroud)
但是他们都没有按预期工作(第二个给了我一个错误,第一个和最后一个只有一列)
给定一批形状为 (batch, c, h, w) 的图像,我想将其重塑为 (-1, 深度, c, h, w),使得大小为 d 的第 i 个“块”包含帧 i -> i+d。基本上,使用 .view(-1, d, c, h, w) 会将张量重塑为 d 大小的块,其中第一个图像的索引将是 d 的倍数,这不是我想要的。
标量示例:
如果原始张量类似于:
[1,2,3,4,5,6,7,8,9,10,11,12] and d is 2;
Run Code Online (Sandbox Code Playgroud)
view()
会返回:[[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]];
但是,我想得到:
[[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10],[10,11],[11,12]]
Run Code Online (Sandbox Code Playgroud)
我编写了这个函数来做到这一点:
def chunk_slicing(data, depth):
output = []
for i in range(data.shape[0] - depth+1):
temp = data[i:i+depth]
output.append(temp)
return torch.Tensor(np.array([t.numpy() for t in output]))
Run Code Online (Sandbox Code Playgroud)
但是我需要一个可用作 PyTorch 模型一部分的函数,因为此函数会导致此错误:
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.
Run Code Online (Sandbox Code Playgroud)