gpt4 book ai didi

python - Linux Mint 上 Shady 中的 LoadPage 非常慢

转载 作者:行者123 更新时间:2023-12-01 07:41:39 24 4
gpt4 key购买 nike

我正在尝试使用 Shady 显示一系列帧,但遇到了困难。我正在查看 25 个帧,覆盖 1080x1080 像素区域。刺激是灰度的,我正在离线进行亮度线性化,所以我只需要为每个像素保存一个uint8值。因此,完整序列约为 29Mb。我将刺激定义为 3-D numpy 数组 [1080x1080x25],并使用 np.save() 将其保存到磁盘。然后我使用 np.load() 加载它。

    try:
yy = np.load(fname)
except:
print fname + ' does not exist'
return

此步骤大约需要 20 毫秒。据我了解,Shady 不处理 uint8 亮度值,而是处理 0 到 1 之间的 float 。因此,我将其转换为 float 组并除以 255。

yy = yy.astype(np.float)/255.0

第二步大约需要 260 毫秒,这已经不太好了(理想情况下,我需要加载刺激并准备在 400 毫秒内呈现)。我现在创建一个包含 25 个 numpy 数组的列表,用作 Stimulus 类中的 pages 参数:

    pages = []
for j in range(yy.shape[2]):
pages.append(np.squeeze(yy[:, :, j]))

这几乎是瞬时的。但在下一步中,我遇到了严重的时间问题。

if (self.sequence is None):
self.sequence = self.wind.Stimulus(pages, 'sequence', multipage=True, anchor=Shady.LOCATION.UPPER_LEFT, position=[deltax, deltay], visible=False)
else:
self.sequence.LoadPages(pages, visible=False)

在这里,我要么创建一个 Stimulus 对象,要么更新其 pages 属性(如果这不是我加载的第一个序列)。无论哪种方式,此步骤大约需要 10 秒,这大约是我的应用程序中可以容忍的 100 倍。

有没有办法显着加快速度?我究竟做错了什么?我的这台机器上有一个相当平庸的显卡(Radeon Pro WX 4100),如果这是问题我可以升级它,但如果这不能解决问题,我不想经历麻烦。

最佳答案

根据 jez 的评论、他的测试和我的测试,我猜想在某些配置上(在我的例子中是带有 Cinnamon 的 Linux Mint 19 和普通的 AMD 显卡)加载 float 可能比加载 uint8 慢得多。对于 uint8,不同配置的行为似乎是一致的。因此,如果可以的话,请使用 uint8。由于这将(我认为)禁用 Shady 在 Gamma 校正和动态范围增强方面的大部分功能,因此这可能会限制某些人。

关于python - Linux Mint 上 Shady 中的 LoadPage 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56675418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com