小编Leo*_*ckl的帖子

next() 和 iter() 在 PyTorch 的 DataLoader() 中做什么

我有以下代码:

import torch
import numpy as np
import pandas as pd
from torch.utils.data import TensorDataset, DataLoader

# Load dataset
df = pd.read_csv(r'../iris.csv')

# Extract features and target
data = df.drop('target',axis=1).values
labels = df['target'].values

# Create tensor dataset
iris = TensorDataset(torch.FloatTensor(data),torch.LongTensor(labels))

# Create random batches
iris_loader = DataLoader(iris, batch_size=105, shuffle=True)

next(iter(iris_loader))
Run Code Online (Sandbox Code Playgroud)

上面的代码做了什么next()iter()做什么?我已经阅读了PyTorch 的文档,但仍然可以完全理解这里是什么next()iter()做什么。谁能帮忙解释一下?提前谢谢了。

python iterator next pytorch dataloader

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

PyTorch:tensor.cuda() 和 tensor.to(torch.device("cuda:0")) 有什么区别?

在 PyTorch 中,以下两种方法向 GPU 发送张量(或模型)有什么区别:

设置:

X = np.array([[1, 3, 2, 3], [2, 3, 5, 6], [1, 2, 3, 4]]) # X = model()
X = torch.DoubleTensor(X)
Run Code Online (Sandbox Code Playgroud)
方法一 方法二
X.cuda() device = torch.device("cuda:0")
X = X.to(device)

(我真的不需要对后端发生的事情进行详细解释,只想知道它们是否本质上都在做同样的事情)

python gpu pytorch

6
推荐指数
2
解决办法
1794
查看次数

如何在 Jupyter Notebook 的输出中显示整个表格

在 Jupyter Notebook 中运行我的代码以输出一个非常大的表格后,表格的中间部分没有显示,它显示为行之间的点。4和79(见下面的附件)。如何让 Jupyter Notebook 显示整个表格?我正在使用蟒蛇。非常感谢。

Jupyter 表

python jupyter-notebook

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

numpy 数组可以在 GPU 上运行吗?

我正在使用 PyTorch。我有以下代码:

import numpy as np
import torch

X = np.array([[1, 3, 2, 3], [2, 3, 5, 6], [1, 2, 3, 4]])
X = torch.DoubleTensor(X).cuda()

X_split = np.array_split(X.numpy(), 
                         indices_or_sections = 2, 
                         axis = 0)
X_split
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-121-870b5d3f67b6> in <module>()
----> 1 X_prime_class_split = np.array_split(X_prime_class.numpy(), 
      2                                      indices_or_sections = 2,
      3                                      axis = 0)
      4 X_prime_class_split

TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first. …
Run Code Online (Sandbox Code Playgroud)

python gpu numpy pytorch

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

如何打印 pandas.io.formats.style.Styler 对象

我有以下代码生成一个 pandas.io.formats.style.Styler 对象:

import pandas as pd
import numpy as np

df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
                 'number': [1, 2]})

df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
df2   # df2 is a pandas.io.formats.style.Styler object
Run Code Online (Sandbox Code Playgroud)

df2如果在上述脚本下运行更多代码,我该如何打印,例如:

import pandas as pd
import numpy as np

df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
                 'number': [1, 2]})

df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
df2

np.round(0.536, 2)
Run Code Online (Sandbox Code Playgroud)

我尝试使用 print 语句,但它给了我如下输出:

import pandas as pd
import numpy as np …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

PyTorch:如何通过广播两个不同形状的张量进行相乘

我有以下两个 PyTorch 张量 A 和 B。

A = torch.tensor(np.array([40, 42, 38]), dtype = torch.float64)

tensor([40., 42., 38.], dtype=torch.float64)
Run Code Online (Sandbox Code Playgroud)
B = torch.tensor(np.array([[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]], [[4,5,6,7,8],[4,5,6,7,8],[4,5,6,7,8],[4,5,6,7,8],[4,5,6,7,8]], [[7,8,9,10,11],[7,8,9,10,11],[7,8,9,10,11],[7,8,9,10,11],[7,8,9,10,11]]]), dtype = torch.float64)

tensor([[[ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.],
         [ 1.,  2.,  3.,  4.,  5.]],

        [[ 4.,  5.,  6.,  7.,  8.],
         [ 4.,  5.,  6.,  7.,  8.],
         [ 4.,  5.,  6.,  7.,  8.],
         [ 4.,  5.,  6.,  7.,  8.], …
Run Code Online (Sandbox Code Playgroud)

python shapes matrix-multiplication pytorch array-broadcasting

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