小编pir*_*pir的帖子

Gensim word2vec关于预定义的字典和单词索引数据

我需要使用gensim在推文上训练word2vec表示.与我在gensim上看到的大多数教程和代码不同,我的数据不是原始数据,但已经过预处理.我在包含65k字(包括"未知"标记和EOL标记)的文本文档中有一个字典,并且推文被保存为带有索引的numpy矩阵到这个字典中.下面是一个简单的数据格式示例:

dict.txt

you
love
this
code
Run Code Online (Sandbox Code Playgroud)

推文(5是未知的,6是EOL)

[[0, 1, 2, 3, 6],
 [3, 5, 5, 1, 6],
 [0, 1, 3, 6, 6]]
Run Code Online (Sandbox Code Playgroud)

我不确定如何处理索引表示.一种简单的方法就是将索引列表转换为字符串列表(即[0,1,2,3,6] - > ['0','1','2','3','6 '))当我把它读入word2vec模型时.然而,这必然是低效的,因为gensim然后将尝试查找用于例如'2'的内部索引.

如何使用gensim以有效的方式加载此数据并创建word2vec表示?

python nlp gensim word2vec

10
推荐指数
1
解决办法
2574
查看次数

尽管设置了CPU_Only,仍然使用GPU,产生意外的关键字参数

我正在安装CUDA(没有驱动程序)的Ubuntu 14.04虚拟服务器上安装Caffe,使用https://github.com/BVLC/caffe/wiki/Ubuntu-14.04-VirtualBox-VM作为灵感.在安装过程中,我"CPU_ONLY := 1"在构建之前编辑了MakeFile以包含它.然而,似乎Caffe仍在尝试使用GPU.当我尝试运行测试示例时,我收到以下错误:

python python/classify.py examples/images/cat.jpg foo
Traceback (most recent call last):
  File "python/classify.py", line 130, in <module>
    main(sys.argv)
  File "python/classify.py", line 103, in main
    channel_swap=channel_swap)
TypeError: __init__() got an unexpected keyword argument 'gpu'
Run Code Online (Sandbox Code Playgroud)

我该如何修复此问题并完全依靠CPU运行?

python caffe

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

在Tensorflow服务中调试批处理(未观察到效果)

我有一个小型的Web服务器,可以根据句子获取输入,并需要使用Tensorflow服务返回模型预测.使用我们的单GPU可以很好地工作,但是现在我想启用批处理,以便Tensorflow服务等待一段时间对传入的句子进行分组,然后在GPU上一次处理它们.

我正在使用预先设计的服务器框架预先设计的批处理框架,使用Tensorflow服务的初始版本.我正在使用--batching标志启用批处理并设置batch_timeout_micros = 10000max_batch_size = 1000.日志记录确认已启用批处理并且正在使用GPU.

但是,当向服务服务器发送请求时,批处理具有最小的影响.同时发送50个请求几乎在时间使用方面与发送5个请求成线性比例.有趣的是,predict()服务器的功能对每个请求都运行一次(见这里),这表明批处理没有得到正确处理.

我错过了什么吗?如何检查批处理有什么问题?


请注意,这与如何在Tensorflow服务中进行批处理不同因为该问题仅检查如何从单个客户端发送多个请求,而不是如何启用Tensorflow服务的多个单独请求的幕后批处理.

gpu tensorflow tensorflow-serving

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

多处理 - 映射列表,终止超出超时限制的进程

我有一个我想要使用多处理修改的元素列表.问题是对于某些特定的输入(在尝试之前不可观察),我的部分功能会停止.我已经在概念上用下面的代码展示了这个函数,其中函数sometimes_stalling_processing()偶尔会无限期地停止.

为了将其置于上下文中,我正在使用Web scraper处理一堆链接,并且即使在请求模块中使用超时,其中一些链接也会停止.我尝试了不同的方法(例如使用eventlet),但得出的结论是,在多处理级别处理它可能更容易.

def stable_processing(obs):
    ...
    return processed_obs

def sometimes_stalling_processing(obs):
    ...
    return processed_obs

def extract_info(obs):
    new_obs = stable_processing(obs)
    try:
        new_obs = sometimes_stalling_processing(obs)
    except MyTimedOutError: # error doesn't exist, just here for conceptual purposes
        pass
    return new_obs

pool = Pool(processes=n_threads)
processed_dataset = pool.map(extract_info, dataset)
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)

这个问题(如何在超时后中断多处理.Pool中的任务?)似乎非常相似,但我一直无法将其转换为使用map而不是apply.我也尝试过使用该eventlet软件包,但这不起作用.请注意,我使用的是Python 2.7.

如何pool.map()对个别观察结果进行超时并杀死sometimes_stalling_processing

python multiprocessing python-multiprocessing

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

检查字符串是否为字符串文字类型

我们广泛使用静态类型检查,但我们也需要一些简单的运行时类型检查。我很乐意使用我们的静态类型进行运行时类型检查。我见过 typeguard 和其他库,但我更喜欢更简单的东西。

我在下面尝试过,但assert value in expected_type没有意义。如何创建一个简单的函数来检查字符串是否在 Python 字符串文本中?

from typing_extensions import Literal

def check_str_in_literal(value: str, expected_type: Literal):
    assert value in expected_type

Gender = Literal["Male", "Female", "Other"]
def print_gender(gender: Gender):
    print(gender)

# Unknown string as it's been retrieved from elsewhere
strRetrievedFromDB = "Male"  # type: ignore

check_str_in_literal(strRetrievedFromDB, Gender)
print_gender(strRetrievedFromDB)
Run Code Online (Sandbox Code Playgroud)

python types typing typechecking

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

Numpy dtype用于具有混合数据类型的列表

我有一个列表,my_list混合数据类型,我想转换成一个numpy数组.但是,我得到了错误TypeError: expected a readable buffer object.见下面的代码.我试图将我的代码基于 NumPy文档.

my_list = [['User_0', '2012-2', 1, 6, 0, 1.0], ['User_0', '2012-2', 5, 6, 0, 1.0], ['User_0', '2012-3', 0, 0, 4, 1.0]]
my_np_array = np.array(my_list, dtype='S30, S8, i4, i4, f32')   
Run Code Online (Sandbox Code Playgroud)

python numpy

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

Theano切换行有效

我有以下代码

output = T.switch(cond, a, b)
Run Code Online (Sandbox Code Playgroud)

这里cond是一个(N,1)布尔张量,而ab(N, M)与数值张量M是相当大的.该条件以行方式运行.

我可以很容易地通过运行开关工作T.repeat()cond,但是这是相当缓慢.有没有办法在我能够有效地使布尔变量cond决定是否ab应该归还?

performance boolean-logic theano

7
推荐指数
1
解决办法
119
查看次数

scikit-学习功能排名返回相同的值

我正在使用scikit-learn的RFECV类来执行功能选择。我对确定一堆变量的相对重要性感兴趣。但是,scikit-learn对于多个变量返回相同的排名(1)。这也可以在他们的示例代码中看到:

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFECV
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFECV(estimator, step=1, cv=5)
>>> selector = selector.fit(X, y)
>>> selector.support_ 
array([ True,  True,  True,  True,  True, False, False, False, False,
       False])
>>> selector.ranking_
array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
Run Code Online (Sandbox Code Playgroud)

有没有办法让scikit-learn也可以确定主要功能之间的相对重要性?

如果需要,我很高兴增加树木或类似树木的数量。与此相关,是否有办法查看此排名的信心?

python machine-learning feature-selection scikit-learn

7
推荐指数
1
解决办法
183
查看次数

使用文件强制转换和输入环境变量

对于我的所有项目,我在开始时加载所有 env 变量,并检查所有预期的键是否存在,如.env.example遵循dotenv-safe 方法的文件所述。

然而,env 变量是字符串,每当它们在 Python 代码中使用时都必须手动转换。这很烦人且容易出错。我想使用.env.example文件中的信息来转换 env 变量并在我的 IDE (VS Code) 中获得 Python 输入支持。我怎么做?

环境示例

PORT: int
SSL: boolean
Run Code Online (Sandbox Code Playgroud)

Python 理想行为

# Set the env in some way (doesn't matter)
import os
os.environment["SSL"] = "0"
os.environment["PORT"] = "99999"

env = type_env()
if not env["SSL"]: # <-- I'd like this to be cast to boolean and typed as a boolean
    print("Connecting w/o SSL!")
if 65535 < env["PORT"]:  # <-- I'd like this to …
Run Code Online (Sandbox Code Playgroud)

python typing environment-variables visual-studio-code

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

就地改组多个HDF5数据集

我有多个HDF5数据集保存在同一个文件中,my_file.h5.这些数据集具有不同的维度,但第一维中的观察数量相同:

features.shape = (1000000, 24, 7, 1)
labels.shape = (1000000)
info.shape = (1000000, 4)
Run Code Online (Sandbox Code Playgroud)

重要的是,信息/标签数据正确连接到每组要素,因此我想要使用相同的种子来混洗这些数据集.此外,我想把它们洗掉,而不是将它们完全加载到内存中.这可能使用numpy和h5py吗?

python numpy hdf5 h5py

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