在 Python 3.8 双 GPU 设置上运行 Tensorflow 2、Cuda 10.1。GPU被tf2识别,然后最初出现错误找不到cupti64_101.dll(CUDA库)
将 cupti64_101.dll 复制到 libx64 后(此解决方案来自另一个问题),Tensorflow 现在可以看到 cupti64_101.dll,但我现在收到不同的错误:
2020-07-31 15:31:59.563093: E tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1408] function cupti_interface_->Subscribe( &subscriber_, (CUpti_CallbackFunc)ApiCallback, this)failed with error CUPTI_ERROR_INSUFFICIENT_PRIVILEGES
2020-07-31 15:31:59.571779: E tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1447] function cupti_interface_->ActivityRegisterCallbacks( AllocCuptiActivityBuffer, FreeCuptiActivityBuffer)failed with error CUPTI_ERROR_INSUFFICIENT_PRIVILEGES
2020-07-31 15:31:59.580274: E tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1430] function cupti_interface_->EnableCallback( 0 , subscriber_, CUPTI_CB_DOMAIN_DRIVER_API, cbid)failed with error CUPTI_ERROR_NOT_INITIALIZED
Run Code Online (Sandbox Code Playgroud)
我更改了 cupti64_101.dll 的权限,以授予所有应用程序完全权限。但仍然出现这些错误。请问哪些文件需要什么权限才能解决这些错误消息?
我有许多非常大的填充 numpy 2d 数组,简化为数组 A,如下所示。数组 Z 是基本的 pad 数组:
A = np.array(([1 , 2, 3], [2, 3, 4], [0, 0, 0], [0, 0, 0], [0, 0, 0]))
Z = np.array([0, 0, 0])
Run Code Online (Sandbox Code Playgroud)
如何以最简单/最快的Python方式计算数组A中的焊盘数量?这可行(zCount=3),但看起来很冗长、循环且不符合Python风格:
zCount = 0
for a in A:
if a.any() == Z.any():
zCount += 1
zCount
Run Code Online (Sandbox Code Playgroud)
还尝试了单行列表理解,但它不起作用(不知道为什么不起作用):
[zCount += 1 for a in A if a.any() == Z.any()]
zCount
Run Code Online (Sandbox Code Playgroud)
还尝试了列表计数,但“具有多个元素的数组的真值不明确”:
list(A).count(Z)
Run Code Online (Sandbox Code Playgroud)
搜索了一个简单的 numpy 表达式但没有成功。np.count_nonzero 给出 [0] 的完整元素布尔值。[0, 0, 0] 是否有一个单字/一行的计数表达式?(我的实际数组的形状约为 (100,30),并且我有多达数百万个数组。我正在尝试批量处理它们,因此任何生成计数的简单时间节省都会有所帮助)。谢谢