小编hir*_*hme的帖子

如何在 tkinter 中显示来自 numpy 数组的图像?

以下短代码旨在使用 numpy 创建一个数组,使用 PIL 将其转换为图像对象,然后插入到 tkinter 窗口上的画布中。

from tkinter import *
from PIL import Image

root = Tk()
array = np.ones((40,40))*150
img = Image.fromarray(array)
canvas = Canvas(root,width=300,height=300)
canvas.pack()
canvas.create_image(20,20,anchor=NW,image=img)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

TclError: image "<PIL.Image.Image image mode=F size=40x40 at 0x7F42D3BC3290>" doesn't exist
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

python在具有三个元素的3D图形/元组中找到连接的组件?

我有一个二进制3D numpy数组,我想为其寻找连接的组件,即ID值为1的邻居元素。

data = np.random.binomial(1, 0.4, 1000)
data = data.reshape((10,10,10))
Run Code Online (Sandbox Code Playgroud)

或者,我可以获取值为1的每个元素的坐标,并获取包含三个元素的一组列表,以获取相邻的簇

coordinates = np.argwhere(data > 0)

connected_elements = []
for node in coordinates:
  neighbors = #Get possible neighbors of node
  if neighbors not in connected_elements:
    connected_elements.append(node)
  else:
    connected_elements.index(neighbor).extend(node)
Run Code Online (Sandbox Code Playgroud)

如何执行此操作,或为3D设置实现2D connected_components函数?

python graph connected-components

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

按名称访问 Pandas MultiIndex 列

我有一个用 pandas 导入的电子表格,如下所示:

df = pd.read_excel('my_spreadsheet.xlsx',header = [0,1],index_col=0,sheetname='Sheet1')
Run Code Online (Sandbox Code Playgroud)

df.columns 的输出是:

MultiIndex(levels=[[u'MR 1', u'MR 10', u'MR 11', u'MR 12', u'MR 13', u'MR 14', u'MR 15', u'MR 16', u'MR 17', u'MR 18', u'MR 19', u'MR 2', u'MR 20', u'MR 21', u'MR 22', u'MR 3', u'MR 4', u'MR 5', u'MR 6', u'MR 7', u'MR 8', u'MR 9'], [u'BIRADS', u'ExamDesc', u'completedDTTM']],
       labels=[[0, 0, 0, 11, 11, 11, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, …
Run Code Online (Sandbox Code Playgroud)

multi-index python-2.7 pandas

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

是否可以在单个 python 脚本中在多个 GPU 上并行训练多个 Keras 模型?

如果我想训练 Keras 模型并拥有多个可用的 GPU,有多种有效使用它们的方法:

  1. 将每个 GPU 分配给不同的模型,并并行训练它们(例如,用于超参数调整或不同架构之间的比较)。例如,我将 model1 分配给 GPU1,将 model2 分配给 GPU2,在一次全局数据加载操作之后,Keras 会在每个 GPU 上并行运行每个模型的 model.fit()。

  2. 划分一个模型并在所有 GPU 上并行训练。这是通过将模型分割成连续的块,然后计算整个模型的所有梯度来完成的。它的实现方式不适用于不同的独立模型。

  3. 挖掘数据并将不同批次输入到不同 GPU 上的同一模型。

似乎有很多关于 2) 和 3) 的文档

https://keras.io/guides/distributed_training/

https://www.run.ai/guides/multi-gpu/keras-multi-gpu-a-practical-guide/

https://www.pyimagesearch.com/2017/10/30/how-to-multi-gpu-training-with-keras-python-and-deep-learning/

但我找不到 1) 的任何解决方案,并且要求它的帖子没有解决方案:

在不同的 GPU 上同时训练多个 keras/tensorflow 模型

看起来,既然这些选项已经可用,那么为每个模型分配不同的 GPU 并并行训练的选项应该很简单。我有什么遗漏的吗?

编辑:一种建议的解决方案是运行不同的 python 脚本。但这并不是最优的,因为它是按脚本划分每个 GPU,而不是按模型划分,这意味着脚本的所有其他部分都需要冗余地运行两次。如果数据加载部分很昂贵,这将非常低效,因为两个脚本都会竞争数据访问。

python deep-learning keras tensorflow

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

Spyder 是否会下载自己的 Python?

这里的常见问题:我安装了Python,然后安装了Spyder,现在当我使用“pip install”安装软件包时,Spyder找不到模块,但是如果我在命令提示符下调用Python(使用Windows),它会找到所有已安装的软件包与点。

我注意到在 Spyder 中,一个新的控制台显示它正在运行 Python 3.7.9,但是如果我在命令提示符上运行“python -V”,它会显示 Python 3.9.1 ,也适用于“py -0”和“py -” 0p”它只显示Python的一个安装,即

>>> py -0p
Installed Pythons found by py Launcher for Windows                                                                       
-3.9-64        C:\Users\my_name\AppData\Local\Programs\Python\Python39\python.exe *   
Run Code Online (Sandbox Code Playgroud)

那么这是怎么回事呢?为什么 Spyder 似乎有自己的 Python 版本?这就是用 pip 安装的软件包无法与 Spyder 通信的原因吗?

python windows pip spyder

5
推荐指数
2
解决办法
7553
查看次数

conda环境已经访问系统模块,如何防止?

我注意到,当我使用 conda 创建新环境时,我可以在该环境中导入未安装的 python 模块。

以 keras 为例:尽管该模块不在该环境中:

(py2) user@user-Precision-7920-Tower:~$ conda list keras
# packages in environment at /home/user/anaconda3/envs/py2:
#
# Name                    Version                   Build  Channel
Run Code Online (Sandbox Code Playgroud)

我仍然可以导入它,显然是从系统(用户)安装,在 conda 之外!

(py2) user@user-Precision-7920-Tower:~$ python
Python 2.7.15 | packaged by conda-forge | (default, Mar  5 2020, 14:56:06) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import keras
Using TensorFlow backend.
>>> keras.__file__
'/home/user/.local/lib/python2.7/site-packages/keras/__init__.pyc'
Run Code Online (Sandbox Code Playgroud)

事实上,conda 内部的 python 可以访问非 conda 路径!

>>> import sys
>>> 
>>> sys.stdout.write("\n".join(sys.path))

/home/user/anaconda3/envs/py2/lib/python27.zip
/home/user/anaconda3/envs/py2/lib/python2.7
/home/user/anaconda3/envs/py2/lib/python2.7/plat-linux2 …
Run Code Online (Sandbox Code Playgroud)

python anaconda conda

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

tkinter:使用 pack_forget 然后再次使用 pack() ,它会打包到不同的位置

根据我的理解,使用 pack() 管理器,每个帧都会相对于代码中其他帧的位置放置。所以如果我这样做:

frame1 = tk.Frame(root)
frame1.pack()

frame2 = tk.Frame(root)
frame2.pack()

frame3 = tk.Frame(root)
frame3.pack()
Run Code Online (Sandbox Code Playgroud)

然后frame2将出现在下方/之后frame1和之前frame3

我的问题是,当使用该功能时frame2.pack_forget(),每当我再次这样做时,frame2.pack()顺序都不会恢复,但现在我有frame1,,,,好像是最后一个。frame3frame2frame2pack

我如何使用pack_forget()然后pack()在创建它的完全相同的位置?

python tkinter

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

如何使用Spyder和Python 2.7安装conda环境?

就像这样简单的事情:

conda create -n py2 python=2.7
Run Code Online (Sandbox Code Playgroud)

然后在那个环境下

conda install spyder=3
Run Code Online (Sandbox Code Playgroud)

未能解决环境问题。虽然这里唯一的东西是 python=2.7 basics 和spyder=3,它们在他们自己的网站上指定需要 python 2.7 https://www.psych.mcgill.ca/labs/mogillab/anaconda2/lib/python2.7/site-包/spyder/doc/installation.html#requirements

为什么会失败?如何才能让这么基本的东西发挥作用?

新的尝试:(最后一个是我知道可以一起工作的特定版本,因为我将它们安装在我的主系统范围内)。

conda create -n py2 python=2.7 spyder                    --> Fails to solve env

conda create -n py2 python=2.7 spyder -c free            --> installs spyder4

conda create -n py2 python=2.7 spyder=3 -c free          --> AttributeError on launch

conda create -n py2 python=2.7.17 spyder=3.2.3 -c free   --> AttributeError on launch
Run Code Online (Sandbox Code Playgroud)

全部失败。如果我不指定spyder=3,conda会安装spyder=4,这是不行的,因为这些版本的python和spyder不能一起工作(为什么conda在检查兼容性时不知道这一点?)。当指定spyder=3时,环境无法解决,除非使用channel free,如评论中所建议的。但是这个方法在启动Spyder时也会失败,抛出AttributeErrors。

python spyder anaconda conda

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

如何检查keras/tensorflow是否正在使用cuDNN?

我已经安装了CUDA和cuDNN,但是最后一个没有用,在theano中提供了很多错误消息.现在我在Keras/Tensorflow中训练中等大小的深度网络,没有收到任何cuDNN错误消息.如何检查cuDNN现在是否正在使用?

keras tensorflow cudnn

2
推荐指数
1
解决办法
9674
查看次数