运行时:
import spacy
nlp = spacy.load('en')
Run Code Online (Sandbox Code Playgroud)
打印如下:
警告:找不到'en'的模型只加载'en'标记生成器.
/site-packages/spacy/data除init文件外,它是空的.所有文件路径只指向我的单个python安装.
任何有助于解决此问题的帮助.
谢谢!将
问题:运行gridsearchcv时,我的情况似乎是内存泄漏。当我使用1个或32个并发工作程序(n_jobs = -1)运行时,会发生这种情况。以前,我在ubuntu 16.04上运行了很多次,没有任何问题,但最近升级到了18.04,并进行了ram升级。
import os
import pickle
from xgboost import XGBClassifier
from sklearn.model_selection import GridSearchCV,StratifiedKFold,train_test_split
from sklearn.calibration import CalibratedClassifierCV
from sklearn.metrics import make_scorer,log_loss
from horsebet import performance
scorer = make_scorer(log_loss,greater_is_better=True)
kfold = StratifiedKFold(n_splits=3)
# import and split data
input_vectors = pickle.load(open(os.path.join('horsebet','data','x_normalized'),'rb'))
output_vector = pickle.load(open(os.path.join('horsebet','data','y'),'rb')).ravel()
x_train,x_test,y_train,y_test = train_test_split(input_vectors,output_vector,test_size=0.2)
# XGB
model = XGBClassifier()
param = {
'booster':['gbtree'],
'tree_method':['hist'],
'objective':['binary:logistic'],
'n_estimators':[100,500],
'min_child_weight': [.8,1],
'gamma': [1,3],
'subsample': [0.1,.4,1.0],
'colsample_bytree': [1.0],
'max_depth': [10,20],
}
jobs = 8
model = GridSearchCV(model,param_grid=param,cv=kfold,scoring=scorer,pre_dispatch=jobs*2,n_jobs=jobs,verbose=5).fit(x_train,y_train)
Run Code Online (Sandbox Code Playgroud)
返回值: UserWarning:当一些作业交给执行者时,一个工人停止了。这可能是由于工作者超时时间太短或内存泄漏引起的。“超时或由于内存泄漏。”,UserWarning …
我只是想在 python 3.85 中定义元组的类型。然而,文档中的两种方法似乎都无法正常工作:
Tuple(float,str)
Run Code Online (Sandbox Code Playgroud)
结果:
Traceback (most recent call last):
File "<ipython-input-30-7964c1934b1f>", line 1, in <module>
Tuple(float,str)
File "C:\Users\kinsm\anaconda3\lib\typing.py", line 727, in __call__
raise TypeError(f"Type {self._name} cannot be instantiated; "
TypeError: Type Tuple cannot be instantiated; use tuple() instead
Run Code Online (Sandbox Code Playgroud)
相对:
tuple(float,str)
Run Code Online (Sandbox Code Playgroud)
结果:
Traceback (most recent call last):
File "<ipython-input-29-fea16b9491a0>", line 1, in <module>
tuple(float,str)
result:
TypeError: tuple expected at most 1 argument, got 2
Run Code Online (Sandbox Code Playgroud) 我安装了 Spyder 5 - 我曾经使用 ipython 控制台的 pip install ,但看起来他们禁用了这个。如果我有 Spyder5 但没有 Anaconda,现在在 Windows 计算机上安装软件包的最佳方法是什么?
假设我有以下数组(请注意,在 [2,0] 位置有一个 1,在 [3,4] 位置有一个 2):
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 2]
[0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
我想有效地沿对角线翻转它,以便:
[0, 0, 1, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 2, 0]
Run Code Online (Sandbox Code Playgroud)
这不适用于 fliplr 或 rot90 或 flipud。想要有效的答案而不仅仅是答案,因为不幸的是,这不是在这么小的矩阵上执行的。
我写了一个示例脚本,在重新安装 Ubuntu 20.04 后遇到了问题。看来多处理只使用一个核心。这是我的示例脚本:
import random
from multiprocessing import Pool, cpu_count
def f(x): return x*x
if __name__ == '__main__':
with Pool(32) as p:
print(p.imap(f,random.sample(range(10, 99999999), 50000000)))
Run Code Online (Sandbox Code Playgroud)
我的处理图像如下。知道什么可能导致这种情况吗?
我在 python 中使用 shapely 并尝试在网格中生成均匀间隔的点,这些点在最快的 O(n) 时间内落在形状内。形状可以是任何闭合多边形,而不仅仅是正方形或圆形。我目前的做法是:
有没有更快的方法来做到这一点?
# determine maximum edges
polygon = shape(geojson['features'][i]['geometry'])
latmin, lonmin, latmax, lonmax = polygon.bounds
# construct a rectangular mesh
points = []
for lat in np.arange(latmin, latmax, resolution):
for lon in np.arange(lonmin, lonmax, resolution):
points.append(Point((round(lat,4), round(lon,4))))
# validate if each point falls inside shape
valid_points.extend([i for i in points if polygon.contains(i)])
Run Code Online (Sandbox Code Playgroud)
python ×6
coordinates ×1
flip ×1
grid-search ×1
gridsearchcv ×1
memory-leaks ×1
models ×1
numpy ×1
pip ×1
points ×1
polygon ×1
scikit-learn ×1
shapely ×1
spacy ×1
spyder ×1
typing ×1
ubuntu ×1