我希望能够只接受 github Copilot 建议的下一个字,而不是完整的建议。有没有办法做到这一点?
我已经编写了一个神经网络分类器,该分类器可以获取海量图像(每张图像约1-3 GB),对其进行修补,然后分别将修补程序通过网络。培训的进行非常缓慢,因此我对其进行了基准测试,发现花大约50 秒钟的时间将补丁从一个图像加载到内存中(使用Openslide库),而仅需0.5秒钟就可以将它们通过模型。
但是,我正在使用具有1.5Tb RAM的超级计算机,其中仅使用了约26 Gb。数据集总计约500Gb。我的想法是,如果我们可以将整个数据集加载到内存中,它将极大地加快训练速度。但是我正在与一个研究团队合作,我们正在多个Python脚本之间进行实验。因此,理想情况下,我想将一个脚本中的整个数据集加载到内存中,并能够在所有脚本中对其进行访问。
更多细节:
.tif格式存储。我发现了很多关于如何在多个Python脚本之间共享Python对象或内存中的原始数据的文章:
多处理模块中具有SyncManager和BaseManager的服务器进程| 示例1 | 示例2 | Docs-服务器进程 | 文件-SyncManager
Manager对象在发送对象之前先对其进行腌制,这可能会使事情变慢。mmap将文件映射到虚拟内存,而不是物理内存 -它会创建一个临时文件。适用于Python 的sysv_ipc模块。这个演示看起来很有希望。
multi-processing模块中可用的功能?我还在Python中找到了IPC /网络选项列表。
有些人讨论服务器-客户端设置,有些人讨论序列化/反序列化,这恐怕会比从磁盘读取花费更多的时间。我找不到任何答案可以解决我的问题,这些答案是否会导致I / O性能的提高。
我们不仅需要在脚本之间共享Python对象/内存;我们需要在Docker容器之间共享它们。
Docker 文档--ipc很好地解释了该标志。根据文档的运行情况,对我来说有意义的是:
docker run …Run Code Online (Sandbox Code Playgroud) 使用包读取 hdf5 文件时出现此错误:
dataset.value
Run Code Online (Sandbox Code Playgroud)
错误:
Traceback (most recent call last):
File "train.py", line 163, in <module>
train(0, False, args.gpu_list, args.model_path)
File "train.py", line 76, in train
dataset = Ani1Dataset(dir_path='/data/ANI-1_release')
File "/code/ani1dataset.py", line 16, in __init__
self.parse(dir_path)
File "/code/ani1dataset.py", line 32, in parse
for molecule in adl:
File "/code/pyanitools.py", line 75, in __iter__
for data in self.h5py_dataset_iterator(self.store):
File "/code/pyanitools.py", line 71, in h5py_dataset_iterator
yield from self.h5py_dataset_iterator(item, path)
File "/code/pyanitools.py", line 60, in h5py_dataset_iterator
dataset = np.array(item[k].value)
AttributeError: 'Dataset' object has no …Run Code Online (Sandbox Code Playgroud) 我有一个带有形状的numpy数组(34799, 32, 32, 3),意思是(num examples, width, height, channels).
现在我使用以下代码规范化图像数据:
def normalize(x):
return (x - 128) / 128
X_train_norm = normalize(X_train)
Run Code Online (Sandbox Code Playgroud)
但结果似乎不对,价值X_train[0][0][0]是[28 25 24],但输出X_train_norm[0][0][0]是[1.21875 1.1953125 1.1875].
我使用以下测试代码:
test = np.array([[[[28, 25, 24]]]])
print ((test - 128) / 128)
Run Code Online (Sandbox Code Playgroud)
输出:
[[[[-0.78125 -0.8046875 -0.8125 ]]]]
Run Code Online (Sandbox Code Playgroud)
为什么normalize函数得到错误的结果?
我正在设置两个 docker 容器 - 一个作为服务器将数据保存在内存中,另一个作为客户端来访问该数据。为了做到这一点,我相信我需要使用该--ipc标志在容器之间共享内存。Docker文档--ipc很好地解释了该标志。根据正在运行的文档,对我来说有意义的是:
docker run -d --ipc=shareable data-server
docker run -d --ipc=container:data-server data-client
Run Code Online (Sandbox Code Playgroud)
但我读过的所有 Stackoverflow 问题(1、2、3、4 )都将两个容器直接链接到主机:
docker run -d --ipc=host data-server
docker run -d --ipc=host data-client
Run Code Online (Sandbox Code Playgroud)
哪个更适合这个用例?如果ipc=host更好,什么时候使用ipc=shareable?
澄清一下,这是一个关于二进制 Linux 可执行文件的问题,而不是脚本,脚本也可以是可执行的,而且通常缺少扩展名。
根据我的经验,大多数 Linux 二进制可执行文件都缺少文件扩展名;例如,Linux 系统上目录中的大多数文件都/bin缺少扩展名。
另一方面,该/lib目录中的大多数文件都具有.so文件扩展名,并且还具有可执行权限。尝试直接执行.so文件通常会导致段错误或某些错误,这是有道理的,因为共享库通常旨在动态链接。但据我了解,如果.so文件有main()入口点,那么您可以将其作为可执行文件运行,就像正常的可执行文件一样(即没有扩展名的文件)。
我的问题:
.so共享库(扩展名)和可执行文件(扩展名)有什么区别[none]?仅仅是是否main()定义了入口点吗?.so在C++中,将代码编译成共享库(扩展)和将代码编译成Linux可执行文件(扩展)有什么区别(即传递给编译器的标志)[none]。编辑:这个问题讨论了如何使用 gcc 命令行构建 .so 文件,但没有确定构建 .so 与普通可执行文件之间的差异。
在取消注释该plt.legend()行之前,以下代码段可以正常工作:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.linspace(-1, 1)
y = np.linspace(-1, 1)
X, Y = np.meshgrid(x, y)
Z = np.sqrt(X**2 * Y)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, label='h=0')
ax.plot(np.zeros_like(y), y, np.zeros_like(y), label='singular points')
# plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
'Poly3DCollection' object has no attribute '_edgecolors2d'
我以为原因可能是我在2d图中使用了plt.legend()framealpha和frameon参数,但是我重新启动了运行时(我在Google Colab Jupyter Notebook中工作),清除了所有变量,然后问题仍然存在。
是什么导致此错误?
我在我通过 GoDaddy 注册的自定义域尝试在我的 github 页面网站上强制执行 https 时看到此消息。当我第一次链接我的自定义域时,该消息出现了,但一周后它仍然存在。
其他背景:
什么可能阻止证书通过?
我的build_and_test.yml文件.github/workflows如下:
name: CI
on:
push:
branches:
- main
- name-of-my-branch
pull_request:
branches:
- main
jobs:
build:
# Code to build
Run Code Online (Sandbox Code Playgroud)
但是,当我推送到分支以外的任何分支时main,构建不会触发。有什么想法可能是为什么吗?
这里是常见的 pytorch 错误,但我在一种独特的情况下看到它:重新加载模型时,CUDA: Out of Memory即使我尚未将模型放置在 GPU 上,我也会收到错误。
model = model.load_state_dict(torch.load(model_file_path))
optimizer = optimizer.load_state_dict(torch.load(optimizer_file_path))
# Error happens here ^, before I send the model to the device.
model = model.to(device_id)
Run Code Online (Sandbox Code Playgroud) python ×3
docker ×2
ipc ×2
c++ ×1
certificate ×1
executable ×1
github ×1
github-pages ×1
gpu ×1
h5py ×1
hdf5 ×1
linux ×1
matplotlib ×1
memory ×1
mplot3d ×1
normalize ×1
numpy ×1
pytorch ×1
tls1.2 ×1