小编che*_*mer的帖子

Conda创新坚持"解决包装规格"

我正在尝试使用anaconda创建一个python 2.7虚拟环境,因此我可以下载一些与python 3.4不兼容的软件包.我在conda版本4.2.13工作.

当我输入命令"conda create -n chemistry python = 2.7 anaconda"时,整个事情就会在"解决包规范"阶段冻结.

有谁知道是什么导致这个或我如何解决它?

python python-2.7 python-3.x anaconda conda

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

在spyder中使用Windows 10的Keras fit_generator()中关于多处理和工作者的混淆

在fit_generator()的文档(文档:https ://keras.io/models/sequential/#fit_generator )中,它说参数use_multiprocessing接受一个布尔值,如果将其设置为True,则该布尔值允许基于进程的线程。

它还说,参数worker是一个整数,它指定如果使用基于进程的线程处理,要启动多少个进程。显然,它默认为1(基于单个进程的线程),如果设置为0,它将在主线程上执行生成器。

我的意思是,如果use_multiprocessing = True且workers> 0(以6为例),它将启动6个独立运行生成器的进程。但是,当我对此进行测试时,我认为我一定会误会某些东西(请参阅下文)。

我感到困惑的原因是,如果我将use_multiprocessing设置为False并且worker = 1,那么在我的任务管理器中,我可以看到我的所有12个虚拟内核都被平均地利用,并且在训练模型时我的CPU使用率约为50% (作为参考,我有一个i6-8750H CPU,它具有6个支持虚拟化的内核,并且在BIOS中启用了虚拟化)。如果增加工人数量,CPU使用率将达到100%,培训速度将大大提高。如果我将工作程序的数量减少到0以便它在主线程上运行,我可以看到我的所有虚拟内核仍在使用中,但是似乎有些不平衡,CPU使用率约为36%。

不幸的是,如果我将multiprocessing设置为True,那么我将得到一个坏管道错误。我尚未解决此问题,但我想更好地了解我要在此处解决的问题。

如果有人可以解释use_multiprocessing = True和use_multiprocessing = False进行训练之间的区别,以及当worker = 0、1和> 1时的区别,我将不胜感激。如果有关系,我将tensorflow(gpu版本)作为IPython控制台在Spyder中使用python 3.6的keras后端。

我的怀疑是,当True时use_multiprocessing实际上启用了多处理,而当use_multiprocessing = False时worker> 1设置了线程数,但这只是一个猜测。

multithreading multiprocessing windows-10 keras python-3.6

5
推荐指数
1
解决办法
4952
查看次数