我在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)
谢谢
我想轻松地比较子图.为此,我想为所有子图设置相同的比例.
我的代码工作正常,我能够绘制子图,但有自己的尺度.我想在x轴上保持比例.
我正在尝试用 Python 创建代数,但发现创建参数化类很困难。
作为一个例子,考虑这个ProductWeight类。它包含另外两个Weight对象,具有强制类型(至少静态地,通过mypy)。
这将失败,因为(根据设计)我无法访问类W1并W2调用它们的类方法,例如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) 我有一个 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)
我对这里发生的事情没有正确的理解,希望得到社区的一些意见:
TORCH_CUDA_ARCH_LIST在这种情况下,它的作用是什么?我开始学习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)
感谢您的帮助!
我试图在 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) 我有一个 8000 个元素的一维数组。
我想获得以下两个数组:
test[1995:1999]包含索引来自, [3995:3999], [5999:5999],的元素[7995:7999]。
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) 我正在尝试使用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) 我正在尝试更改一些 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 训练的模型?
我有两个向量,我想构建它们的成对差异的矩阵。目前我这样做:
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 ×7
matplotlib ×2
numpy ×2
pytorch ×2
division ×1
docker ×1
java ×1
metaclass ×1
python-2.x ×1
python-3.x ×1
scikit-learn ×1
templates ×1