小编Meg*_*ega的帖子

在执行Tensorflow或Theano代码期间GPU丢失

当训练两个不同神经网络中的一个时,一个用Tensorflow,另一个用Theano,有时候经过一段随机的时间(可能是几个小时或几分钟,大多数几个小时),执行冻结,我得到这个消息运行"nvidia-smi":

"无法确定GPU 0000:02:00.0的设备句柄:GPU丢失.重新启动系统以恢复此GPU"

我尝试监控GPU性能,执行13个小时,一切看起来都很稳定: 在此输入图像描述

我正在与:

  • Ubuntu 14.04.5 LTS
  • GPU是Nvidia Titan Xp(这种行为在同一台机器上的另一个GPU上重复)
  • CUDA 8.0
  • CuDNN 5.1
  • Tensorflow 1.3
  • Theano 0.8.2

我不确定如何处理这个问题,有人可以提出一些可能导致这种情况以及如何诊断/解决此问题的建议吗?

gpu nvidia cudnn theano-cuda tensorflow-gpu

8
推荐指数
1
解决办法
1302
查看次数

在不同进程之间共享内存中的复杂 python 对象

我有一个复杂的 python 对象,内存大小约为 36GB,我想在多个单独的 python 进程之间共享它。它作为 pickle 文件存储在磁盘上,目前我为每个进程单独加载该文件。我想共享这个对象,以便在可用内存量的情况下并行执行更多进程。

从某种意义上说,该对象用作只读数据库。每个进程每秒都会发起多次访问请求,而每次请求只是针对一小部分数据。

我研究了像 Radis 这样的解决方案,但我发现最终数据需要序列化为简单的文本形式。此外,将 pickle 文件本身映射到内存应该没有帮助,因为每个进程都需要提取它。所以我想到了另外两种可能的解决方案:

  1. 使用共享内存,每个进程都可以访问存储对象的地址。这里的问题是进程只会看到大量字节,无法解释这些字节
  2. 编写一段代码来保存该对象并通过 API 调用管理数据检索。在这里,我想知道这种解决方案在速度方面的表现。

有没有一种简单的方法来实施这些解决方案?也许对于这种情况有更好的解决方案?

非常感谢!

pickle shared-memory python-3.x

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

从 spaCy 中的一个令牌中检索实体的跨度

给定一个令牌,它是具有多个令牌的命名实体的一部分,是否有直接方法来获取该实体的跨度?

例如,考虑这个有两个词命名实体的句子:

>>> doc = nlp("This year was amazing.")
>>> doc.ents
(This year,)
>>> doc[0].ent_type_
'DATE'
>>> doc[1].ent_type_
'DATE'
Run Code Online (Sandbox Code Playgroud)

假设我们考虑第一个标记(“This”),是否可以检索其所属的实体?也许是这样的:

>>> doc[0].ents_
(This year,)
Run Code Online (Sandbox Code Playgroud)

我猜有时一个令牌可以是多个实体的一部分。

目前,我通过创建一个从索引到实体索引的反向字典来获得它。

谢谢!

named-entity-recognition spacy

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