小编FBr*_*esi的帖子

将张量列表转换为张量的张量 pytorch

我有这个代码:

import torch

list_of_tensors = [ torch.randn(3), torch.randn(3), torch.randn(3)]
tensor_of_tensors = torch.tensor(list_of_tensors)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ValueError:只有一个元素张量可以转换为Python标量

如何将张量列表转换为pytorch中的张量张量?

python python-3.x pytorch

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

当在 Windows 上使用 PyTorch 的 CUDA 时,GPU 使用率显示为零

我有pytorch脚本。

import torch

torch.cuda.is_available() 
# True

device=torch.device('cuda:0') 
# I moved my tensors to device
Run Code Online (Sandbox Code Playgroud)

但是当 pytorch 脚本运行时,Windows 任务管理器显示 GPU (NVIDIA GTX 1050TI) 使用率为零,我的脚本速度很好,如果我将 torch.device 更改为 CPU 而不是 GPU,速度会变慢,因此 cuda (GPU) 正在工作。为什么 Windows 任务管理器不显示 GPU 使用情况?

我的代码示例:

device=torch.device("cuda:0")
model=torch.load('mymodel.pth', map_location=torch.device(device))
image=Image.open('picture.png').convert('RGB')
transform=transforms.Compose([
            transforms.Resize(224),
            transforms.CenterCrop(224),
            transforms.ToTensor(),
            transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
        ])
input=transform(image)
input=torch.unsqueeze(input, 0)
input=input.to(device)
output=model(input)
Run Code Online (Sandbox Code Playgroud)

windows gpu pytorch

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

NotImplementedError:学习率计划必须覆盖 get_config

我已经使用 tf.keras 创建了一个自定义计划,并且在保存模型时遇到了这个错误:

NotImplementedError:学习率计划必须覆盖 get_config

这个类看起来像这样:

class CustomSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):

    def __init__(self, d_model, warmup_steps=4000):
        super(CustomSchedule, self).__init__()

        self.d_model = d_model
        self.d_model = tf.cast(self.d_model, tf.float32)

        self.warmup_steps = warmup_steps

    def __call__(self, step):
        arg1 = tf.math.rsqrt(step)
        arg2 = step * (self.warmup_steps**-1.5)

        return tf.math.rsqrt(self.d_model) * tf.math.minimum(arg1, arg2)

    def get_config(self):
        config = {
            'd_model':self.d_model,
            'warmup_steps':self.warmup_steps

        }
        base_config = super(CustomSchedule, self).get_config()
        return dict(list(base_config.items()) + list(config.items()))
Run Code Online (Sandbox Code Playgroud)

python machine-learning transformer-model keras tensorflow2.0

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

在运行时向 Numpy 数组添加属性

我正在尝试使用 setattr 将属性添加到 Numpy ndarray,但出现错误:

import numpy as np

x = np.array([1, 2, 4])
setattr(x, 'new_attr', 1)
Run Code Online (Sandbox Code Playgroud)

AttributeError:numpy.ndarray 对象没有属性 new_attr

如何向 Numpy ndarray 添加新属性?

python numpy numpy-ndarray

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

OPENCV_ENABLE_NONFREE CMake 选项并在函数“create”中重建库

我真的开始使用python了。我从互联网下载项目。但是当我尝试运行时,出现了这些错误。我认为该项目不支持我的安装模块。如何解决这个问题?

错误

回溯(最近一次调用):文件“compare.py”,第 20 行,在 sift = cv2.xfeatures2d.SIFT_create() cv2.error: OpenCV(4.2.0) /Users/travis/build/skvark/opencv-python /opencv_contrib/modules/xfeatures2d/src/sift.cpp:1210: error: (-213:The function/feature is not implementation) 这个算法是专利的,被排除在这个配置中;设置 OPENCV_ENABLE_NONFREE CMake 选项并在函数“create”中重建库

完整代码

import cv2
import numpy as np

original = cv2.imread("images/original_golden_bridge.jpg")
image_to_compare = cv2.imread("images/george-washington-bridge.jpg")

# 1) Check if 2 images are equals
if original.shape == image_to_compare.shape:
    print("The images have same size and channels")
    difference = cv2.subtract(original, image_to_compare)
    b, g, r = cv2.split(difference)

    if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0:
        print("The images are completely Equal") …
Run Code Online (Sandbox Code Playgroud)

python opencv python-2.7 python-3.x

5
推荐指数
0
解决办法
6818
查看次数

NumPyro vs Pyro:为什么前者快 100 倍,我什么时候应该使用后者?

来自 Pytorch-Pyro 的网站

我们很高兴地宣布发布 NumPyro,这是一个 NumPy 支持的 Pyro,使用 JAX 进行自动微分和 JIT 编译,HMC 和 NUTS 的速度提高了 100 倍以上!

我的问题:

  1. NumPyro(超过 Pyro)的性能提升(有时是340 倍或 2 倍)究竟来自哪里?
  2. 更重要的是,为什么(而不是,在哪里)我会继续使用 Pyro?

额外的:

  1. 与 Tensorflow Probability 相比,我应该如何查看 NumPyro 的性能和特性,以决定在何处使用哪个?

pytorch pyro.ai probabilistic-programming tensorflow-probability numpyro

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

Pandas 通过多个字符串分隔符将列拆分为多列

我有一个数据框:

id    info
1     Name: John Age: 12 Sex: Male
2     Name: Sara Age: 22 Sex: Female
3     Name: Mac Donald Age: 32 Sex: Male
Run Code Online (Sandbox Code Playgroud)

我希望将信息列拆分为 3 列,以便获得最终输出:

id  Name      Age   Sex
1   John      12   Male
2   Sara      22   Female
3 Mac Donald  32   Male
Run Code Online (Sandbox Code Playgroud)

我尝试使用熊猫拆分功能。

df[['Name','Age','Sex']] = df.info.split(['Name'])
Run Code Online (Sandbox Code Playgroud)

我可能需要多次执行此操作才能获得所需的输出。

有没有更好的方法来实现这一目标?

PS:信息列也包含NaN

python dataframe python-3.x pandas

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

破折号多页“存储组件”值

我正在尝试实现一个多页面 Dash Web 应用程序,但在跨页面来回切换时,我很难“存储”组件中的更改。也就是说,每次移动到新页面时,布局都会刷新。

下面有一个(最小?)用于重现性目的的代码示例,其中第 1 页有一个 html 表格,第一行允许用户输入和添加按钮,然后也可以删除插入的行。第2页只是一个用于来回切换的占位符。

我想一种策略可能是使用不同的dcc.Stores 并记录发生的情况,并在切换时从中填充页面。但我希望有更好的策略:)

索引.py

import dash
from dash import html, dcc
import dash_bootstrap_components as dbc

# Dash app
app = dash.Dash(
    __name__,
    external_stylesheets=[
        dbc.themes.FLATLY,
        dbc.icons.BOOTSTRAP,
    ],
    use_pages=True,
)

sidebar = dbc.Col(
    id="sidebar",
    children=[
        dbc.Nav(
            id="sidebar-nav",
            children=[
                dbc.NavLink(children="page1", id="page1", href="/page1", active="exact"),
                dbc.NavLink(children="page2", id="page2", href="/page2", active="exact")
            ],
        ),
    ],
)

main_content = dbc.Col(
    id="main-content",
    className="main-content-expanded",
    children=dash.page_container,
)

page = dbc.Row(
    id="page",
    children=[
        sidebar,
        main_content,
    ],
)

url = dcc.Location(id="url", refresh=False)

# App …
Run Code Online (Sandbox Code Playgroud)

python plotly-dash

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

如何在numpy数组的给定行中保留N个最小元素?

给定一个二维 numpy 矩阵,如何保留每行中的 N 个最小元素并将其余元素更改为0(零)。

例如:N=3 输入数组:

1   2   3   4   5
4   3   6   1   0
6   5   3   1   2
Run Code Online (Sandbox Code Playgroud)

预期输出:

1   2   3   0   0
0   3   0   1   0
0   0   3   1   2
Run Code Online (Sandbox Code Playgroud)

以下是我尝试过的代码,它可以工作:

# distance_matrix is the given 2D array
N=3
for i in range(distance_matrix.shape[0]):
    n_th_largest = np.sort(distance_matrix[i])[N]
    for j in range(distance_matrix.shape[1]):
        distance_matrix[i][j] = np.where(distance_matrix[i][j]<n_th_largest,distance_matrix[i][j],0)

# return distance_matrix
Run Code Online (Sandbox Code Playgroud)

但是,此操作涉及迭代每个元素。有没有更快的方法来解决这个使用np.argsort()或任何其他功能?

python sorting import numpy

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

从对列表中制作 Numpy 对称矩阵

我有一个相关矩阵,但指定为对,例如:

cm = pd.DataFrame({'name1': ['A', 'A', 'B'], 
                   'name2': ['B', 'C', 'C'], 
                   'corr': [0.1, 0.2, 0.3]})
cm
    name1   name2   corr
0   A       B       0.1
1   A       C       0.2
2   B       C       0.3
Run Code Online (Sandbox Code Playgroud)

将它变成一个 numpy 二维数组相关矩阵的最简单方法是什么?

    A   B   C
A 1.0 0.1 0.2
B 0.1 1.0 0.3
C 0.2 0.3 1.0
Run Code Online (Sandbox Code Playgroud)

python numpy matrix

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