小编Ary*_*thy的帖子

为什么这个部门没有正确执行?

我在Python中有一个奇怪的问题:除法没有正确执行:

print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print  (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
Run Code Online (Sandbox Code Playgroud)

这些是结果:

100
50
100
40
0
Run Code Online (Sandbox Code Playgroud)

谢谢

python division python-2.x

7
推荐指数
2
解决办法
5883
查看次数

如何使用matplotlib为python中的子图设置相同的比例

我想轻松地比较子图.为此,我想为所有子图设置相同的比例.

我的代码工作正常,我能够绘制子图,但有自己的尺度.我想在x轴上保持比例.

matplotlib

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

Python 中的模板类

我正在尝试用 Python 创建代数,但发现创建参数化类很困难。

作为一个例子,考虑这个ProductWeight类。它包含另外两个Weight对象,具有强制类型(至少静态地,通过mypy)。

这将失败,因为(根据设计)我无法访问类W1W2调用它们的类方法,例如zero. (它们没有指定;ProductWeight没有模板化。)ProductWeight当我创建实例时,不知道要绑定到它的类型。

from typing import Generic, TypeVar
W1 = TypeVar("W1")
W2 = TypeVar("W2")

class ProductWeight(Generic[W1, W2]):
    def __init__(self, value1: W1, value2: W2):
        self.value1_ = value1
        self.value2_ = value2

    @classmethod
    def zero(cls):
        return cls(W1.zero(), W2.zero())  # Will fail - no access to W1 and W2.
    
Run Code Online (Sandbox Code Playgroud)

相比之下,这在 C++ 中很简单:因为类型是参数化的,所以它能够查找W1::Zero.

template<typename W1, typename W2>
public:
    ProductWeight(W1 w1, W2 w2) : value1_(w1), …
Run Code Online (Sandbox Code Playgroud)

python templates metaclass python-3.x python-typing

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

不同 CUDA 架构的 Pytorch 安装

我有一个 Dockerfile,它从源代码安装 PyTorch 库。

这是 Dockerfile 中的片段,它从 pytorch 源代码执行安装

RUN cd /tmp/ \
 && git clone https://github.com/pytorch/pytorch.git \
 && cd pytorch  \
 && git submodule sync && git submodule update --init --recursive \
 && sudo TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0 7.5 8.0" python3 setup.py install

Run Code Online (Sandbox Code Playgroud)

我对这里发生的事情没有正确的理解,希望得到社区的一些意见:

  • 为什么不同的 CUDA 版本 PyTorch 需要不同的安装方式?
  • TORCH_CUDA_ARCH_LIST在这种情况下,它的作用是什么?
  • 如果我的机器有多个 CUDA 设置,这是否意味着我将在 Docker 容器中安装多个 PyTorch 版本(特定于每个 CUDA 设置)?
  • 如果我的机器没有上述 CUDA 设置(“6.0 6.1 7.0 7.5 8.0”),PyTorch 安装会失败吗?

docker pytorch

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

Java程序打印出“JAVA_OPTIONS”

我开始学习Java。运行代码后,我会得到一些额外的行以及预期的输出。有人可以告诉我他们的意思吗?

我的代码:

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!!!");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~2\HP\QUICKT~1\bin\JAVA_S~1\classes;C:\PROGRA~2\HP\QUICKT~1\bin\JAVA_S~1\classes\jasmine.jar
Hello World!!!
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

java

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

Matplotlib 直方图标题

我试图在 matplotlib 的函数中调用变量,但它给了我一个错误。也许这是不可能的。

sigma = float(some number)
ax1.hist(population)
ax1.set_title('blah   N = 241', 'standard deviation =',sigma)
Run Code Online (Sandbox Code Playgroud)

它返回错误:

AttributeError: 'str' object has no attribute 'pop'  
Run Code Online (Sandbox Code Playgroud)

或者

AttributeError: 'int' object has no attribute 'pop'
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

python 从数组中提取元素

我有一个 8000 个元素的一维数组。

我想获得以下两个数组:

  1. test[1995:1999]包含索引来自, [3995:3999], [5999:5999],的元素[7995:7999]

  2. train应该包含其他一切。

我该怎么做呢?


idx = [1995,1996,1997,1998, 1999, 3995, 3996, 3997,3998, 3999, 5995, 5996, 5997, 5998, 5999, 7995, 7996, 7997, 7998, 7999]
test = [X[i] for i in idx]

train = [X[i] for i **not** in idx]
Run Code Online (Sandbox Code Playgroud)

python numpy

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

NotFittedError:TfidfVectorizer - 没有安装词汇表

我正在尝试使用scikit-learn/pandas构建一个情绪分析器.构建和评估模型有效,但尝试对新样本文本进行分类则不然.

我的代码:

import csv
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import BernoulliNB
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score

infile = 'Sentiment_Analysis_Dataset.csv'
data = "SentimentText"
labels = "Sentiment"


class Classifier():
    def __init__(self):
        self.train_set, self.test_set = self.load_data()
        self.counts, self.test_counts = self.vectorize()
        self.classifier = self.train_model()

    def load_data(self):

        df = pd.read_csv(infile, header=0, error_bad_lines=False)
        train_set, test_set = train_test_split(df, test_size=.3)
        return train_set, test_set

    def train_model(self):
        classifier = BernoulliNB()
        targets = self.train_set[labels]
        classifier.fit(self.counts, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn

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

有没有办法将 torch.nn.DataParallel 与 CPU 一起使用?

我正在尝试更改一些 PyTorch 代码,以便它可以在 CPU 上运行。

该模型经过训练,torch.nn.DataParallel()因此当我加载预训练模型并尝试使用它时,我必须使用nn.DataParallel()我目前正在做的事情,如下所示:

device = torch.device("cuda:0")
net = nn.DataParallel(net, device_ids=[0])
net.load_state_dict(torch.load(PATH))
net.to(device)
Run Code Online (Sandbox Code Playgroud)

然而,当我将我的手电筒设备切换到 CPU 后,如下所示:

device = torch.device('cpu')
net = nn.DataParallel(net, device_ids=[0])
net.load_state_dict(torch.load(PATH))
net.to(device)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

File "C:\My\Program\win-py362-venv\lib\site-packages\torch\nn\parallel\data_parallel.py", line 156, in forward
    "them on device: {}".format(self.src_device_obj, t.device))
RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found one of them on device: cpu
Run Code Online (Sandbox Code Playgroud)

我假设它仍在寻找 CUDA,因为这就是device_ids设置的内容,但有没有办法让它使用 CPU?PyTorch 存储库中的这篇文章让我认为我可以,但它没有解释如何做到。

如果没有,是否有其他方法可以在您的 CPU 上使用通过 DataParallel 训练的模型?

python parallel-processing pytorch

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

计算 numpy 中两个向量之间的成对差异?

我有两个向量,我想构建它们的成对差异的矩阵。目前我这样做:

import numpy as np
a = np.array([1,2,3,4])
b = np.array([3,2,1])
M = a.reshape((-1,1)) - b.reshape((1,-1))
Run Code Online (Sandbox Code Playgroud)

这当然有效,但我想知道这是否真的是预期的做事方式。该行的可读性不佳;人们必须想一想他们在reshape做什么。这可以改进吗?是否有另一种“更清洁”的方式来实现相同的目标?

python numpy

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