小编sop*_*ros的帖子

我无法加载我的模型,因为我无法放置 PosixPath

我正在设置一个脚本,我需要使用 package.json 中的一些函数fast-ai。事实是,我在 Windows 上,当我定义路径时,fast-ainamed 中的函数load_learner无法加载模型。

我试图将函数更改为包:

state = pickle.load(open(str(path) + '/' + str(fname), 'rb'))

代替:

state = pickle.load(open(path/fname, 'rb'))

但我收到此错误:

 File "lib\site-packages\fastai\basic_train.py", line 462, in load_learner
    state = pickle.load(open(path/fname, 'rb'))
  File "\lib\pathlib.py", line 1006, in __new__
    % (cls.__name__,))
NotImplementedError: cannot instantiate 'PosixPath' on your system
Run Code Online (Sandbox Code Playgroud)

我的路径定义为:

folder_path = './models/model1'
fname = 'model.pkl'
Run Code Online (Sandbox Code Playgroud)

我把这个函数称为: model = load_learner(folder_path, fname)

如何在此功能中使用 Windows 路径?


更新 1

发布的答案仅在 Linux 上是正确的。我在 Windows 上仍然有这个问题。我没有找到在 Windows 上通过 PosixPath 的方法。我发现的唯一解决方案是从我的模块中更改内部包,但这不是解决此类问题的安全方法。


提前致谢。

python pickle pathlib pytorch fast-ai

4
推荐指数
2
解决办法
3066
查看次数

python pyinstaller 未找到名为“cairo”的库

matplotlib在编译依赖于和pyside2with 的应用程序时,pyinstaller我收到这些错误

环境

 PyInstaller: 3.5
 Python: 3.7.5
 Platform: Windows-10-10.0.14393-SP0
Run Code Online (Sandbox Code Playgroud)

错误

    31256 INFO:   Matplotlib backend GTK3Agg: ignored
    Traceback (most recent call last):
    File c:\users\digikwondo\pycharmprojects\guitest\venv\lib\site- 
    packages\matplotlib\backends\backend_cairo.py, line 14, in <module>
    import cairo
    ModuleNotFoundError: No module named cairo

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "<string>", line 12, in <module>
    File "c:\users\digikwondo\pycharmprojects\guitest\venv\lib\site- 
    packages\matplotlib\backends\backend_gtk3agg.py, line 4, in <module>
    from . import backend_agg, backend_cairo, backend_gtk3
    File "c:\users\digikwondo\pycharmprojects\guitest\venv\lib\site- 
    packages\matplotlib\backends\backend_cairo.py", line 20, in <module> …
Run Code Online (Sandbox Code Playgroud)

windows pyinstaller cairo pycairo python-3.x

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

从 jupyter notebook 调用 julia 函数(导入 Julia jupyter notebook)

使用 Python,我可以通过将另一个 Jupyter 笔记本作为模块直接导入到一个新笔记本(在 Anaconda 中)或使用nbpackage.

这可以用 Julia Jupyter 笔记本完成吗?如何将功能从一个笔记本导入到另一个?

import julia ijulia-notebook jupyter-notebook

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

python pandas read_csv 需要永远

我正在尝试使用 panda 加载一个 128MB 的文件(谷歌搜索后我发现它比 open 或 np.loadtxt 快)。该文件有 1000 行,每行包含 65K 个值,这些值是 0 或 1,由单个空格分隔。

出于某种原因,这需要很长时间,我不知道为什么。128MB 对我来说听起来很小,Matlab 会在大约一分钟内加载它。

这是我的(简单)代码:

import os
import numpy as np
import pandas as pd
import time

DATA_DIR='D:\BinaryDescriptors3\ORBLearningIntermediatResults2'
TEST_DIR='yosemite_harris'
OUT_DIR='D:\BinaryDescriptors3\ORBLearningTripletsFinalResults'
PATCH_NUM=1000

data_filename=TEST_DIR+'_' + str(PATCH_NUM) + '_ORBresfile.txt'

data_filepath = os.path.join(DATA_DIR,data_filename)

s=time.time()
print "START"
data =  pd.read_csv(data_filepath,delimiter=' ')

e=time.time()

print e-s
Run Code Online (Sandbox Code Playgroud)

它从未到达最后一行(我在终止它之前给了它 30 分钟)。为什么读取一个 128MB 的小文件需要这么长时间?

编辑:

  1. 尝试使用以下命令仅读取一行时:

    数据 = pd.read_csv(data_filepath,delimiter='', nrows=1)

我收到以下错误:

Traceback (most recent call last):
  File "C:\eclipse\plugins\org.python.pydev_3.7.1.201409021729\pysrc\pydevd.py", line 2090, in <module>
    debugger.run(setup['file'], None, None) …
Run Code Online (Sandbox Code Playgroud)

python performance pandas

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

与 Cohen Kappa 的多标签注释器协议

假设我想要对文档进行注释。每个文档都可以使用多个标签进行注释。在这个例子中,我有 2 个注释器(a 和 b),他们每个都标记了两个文档。

from sklearn.metrics import cohen_kappa_score
annotator_a = [ 
    ["a","b","c"],
    ["d","e"]
]
annotator_b = [
    ["b","c"],
    ["f"]
]
Run Code Online (Sandbox Code Playgroud)

Annotator_a 用标签 a、b 和 c 标记文档 1。Annotator_b 用标签 b 和 c 标记文档 1。

我尝试使用以下方法计算注释者协议:

cohen_kappa_score(annotator_a, annotator_b)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:

ValueError: You appear to be using a legacy multi-label data representation. Sequence of sequences are no longer supported; use a binary array or sparse matrix instead.
Run Code Online (Sandbox Code Playgroud)

关于如何计算此集合上的注释者协议的任何想法?

python scikit-learn kappa

3
推荐指数
2
解决办法
3005
查看次数

对 gensim 模型中的向量进行归一化

我有一个带有不同范数向量的预训练词嵌入,我想对模型中的所有向量进行归一化。我正在用一个 for 循环来迭代每个单词并对其向量进行归一化,但是我们的模型很大并且需要太多时间。是否gensim包括任何方法可以更快地做到这一点?我找不到它了。

谢谢!!

python nlp gensim word-embedding

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

Python:将一个characater的多次出现替换为一次,但单次出现则为none

我有一个字符串:

a = '0202201131181'
Run Code Online (Sandbox Code Playgroud)

我想用单个替换所有多次出现的1in a,1如果只找到一次出现'1',则用空字符串''替换它.

我的最终目标是获得:

a = '0202201318'
Run Code Online (Sandbox Code Playgroud)

在这里,'8'字符后面的'1'只出现一次,所以它被空字符串替换,但字符'3'之前的'11'和字符'3'之后的'11'被'1'取代.

这是我尝试过的if-else代码块,部分正确:

if '11' in a:
    a = a.replace("11","1")
else:
    a = a.replace("1","")
Run Code Online (Sandbox Code Playgroud)

但它输出'02022013181',这是不正确的.这该怎么做?

python string string-formatting python-3.x

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

Conda 未安装 PackageNotInstalledError:软件包未安装在前缀中

我是 Anaconda 新用户,我的 Anaconda 导航器每次都无法启动。我尝试了网上的其他答案,例如设置 PATH 和 Anaconda Prompt 上的“conda update --all”。即使完成所有操作后,仍会出现以下错误:

(base) C:\Users\utkar>conda update conda

PackageNotInstalledError: Package is not installed in prefix.
  prefix: C:\Anaconda3
  package name: conda
Run Code Online (Sandbox Code Playgroud)

附上 conda 创建的错误报告:

'''

>>>>>>>>>>>>>>>>>>>> 错误报告<<<<<<<<<<<<<<<<<<<<<

Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\conda\exceptions.py", line 1003, in __call__
    return func(*args, **kwargs)
  File "C:\Anaconda3\lib\site-packages\conda\cli\main.py", line 84, in _main
    exit_code = do_call(args, p)
  File "C:\Anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 82, in do_call
    exit_code = getattr(module, func_name)(args, parser)
  File "C:\Anaconda3\lib\site-packages\conda\cli\main_install.py", line 20, in execute
    install(args, parser, 'install')
  File "C:\Anaconda3\lib\site-packages\conda\cli\install.py", …
Run Code Online (Sandbox Code Playgroud)

python windows anaconda jupyter

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

偶数异或子数组的数量

用偶数异或找出子数组的数量(子数组的异或意味着其元素的异或)。例如:

l=[1,2,3,4]   # ----> Answer of this is 4
Run Code Online (Sandbox Code Playgroud)

(解释:[2],[4],[1,2,3],[1,2,3,4]--->这些是异或偶数的子数组,因此子数组数=4)

这是我的代码:

def odd_int(lst):
    odd=0
    for i in lst:
        if i%2!=0:
            odd+=1 
    return odd    
l=list(map(int,input().split()))
x=0 # Denotes number of even xor arrays
for i in range(len(l)):
    for j in range(i,len(l)):
        l1=l[i:j+1]
        y=odd_int(l1)
        if y%2==0:
            x+=1
print(x)
Run Code Online (Sandbox Code Playgroud)

上面的代码超过了时间限制,所以有什么建议可以将它优化为 O(n)???谢谢你的时间!!!

python algorithm performance dynamic-programming python-3.x

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

添加基于报告的层次结构级别

数据文件

child parent
b     a
c     a
d     b
e     c
f     c
g     f
Run Code Online (Sandbox Code Playgroud)

输出:

child   parent  level
b       a       1
c       a       1
d       b       2
e       c       2
f       c       2
g       f       3
Run Code Online (Sandbox Code Playgroud)

根据此父子报告,“a”是主要父项,因为它不向任何人报告。'b' 和 'c' 向 'a' 报告,因此它们的级别 = 1。'd' 和 'e' 向级别 1 (b,c) 报告,因此它们的级别 =2。'g' 报告给 'f'(这是级别 2),因此级别 = 3 表示 'g'。请让我知道如何实现这一目标

我正在尝试下面的代码,但它不起作用

df['Level'] = np.where(df['parent'] == 'a',"level 1",np.nan)
dfm1 = pd.Series(np.where(df['Level'] == 'level 1', df['parent'],None))
df.loc[df['parent'].isin(dfm1),'Level'] = "level 2"
Run Code Online (Sandbox Code Playgroud)

python networkx pandas

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