小编jer*_*orx的帖子

提升:持久存储R树?

因此,boost以R树的形式提供了良好的空间索引功能.这很整洁,但是一旦它构建完成,它似乎还不能序列化它,我错了吗?

通常的"out_archive << rtree"语法不起作用,因为rtree没有serialize()成员.在boost 1.57中似乎有一些实验代码,例如/boost/geometry/index/detail/serialization.hpp,但它实际上似乎没有编译!

所以第一个问题:有人知道如何使用boost序列化R树吗?

如果没有,那么我的第二个问题是:您将如何将索引永久存储在磁盘上以避免每次都重建它?(我有一个145M条目的数据集,构建索引需要几个小时,所以我真的不想不止一次构建它!)

c++ serialization boost boost-geometry

7
推荐指数
1
解决办法
1062
查看次数

编译python代码并将其链接到C++程序?

我很清楚允许C代码运行python代码的许多可能性,反之亦然(Cython,Boost.Python,...).但是,除非我弄错了,所有这些方法只是"调用"相关的python脚本并管理C程序和python脚本之间的交互.因此,需要安装python.

在我的情况下,我想要一个独立的解决方案,我的python代码可以以某种方式编译并链接到我的主要C++程序.我对Cython抱有希望,因为它允许我编译我的脚本并创建一个.so文件.但是,我似乎无法将.so文件"链接"到我的C++程序中.我尝试了以下方法:

一个简单的python脚本,包含一个函数multiply(a,b),它返回一个*b; 我使用cython创建了一个libmultiply.so文件.一个简短的Cpp文件,输出乘法(5,2)的结果:

int multiply(int, int);

int main()
{
    std::cout << multiply(5,2) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我通过以下方式构建:g ++ test.cpp -L/home/jerome/-lmultiply

这给了我错误:

test.cpp:(.text+0x2b): undefined reference to `multiply(int, int)'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我不确定我尝试的是否有意义,但希望它能让你了解我想要实现的目标.

c++ python

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

SageMaker 管理的 AWS ml.p2.xlarge 实例上的 Keras/Tensorflow 未检测到 GPU

我使用自定义 Docker 容器与ml.p2.xlarge实例上的 SageMaker 配合使用。

基础镜像是tiangolo/python-machine-learning:cuda9.1-python3.7,它通常附带所需的 CUDA 工具包。python 包通过 conda 使用以下极简安装environment.yaml

dependencies:
  - boto3
  - joblib
  - keras
  - numpy
  - pandas
  - scikit-learn
  - scipy
  - tensorflow=2.0
Run Code Online (Sandbox Code Playgroud)

但是,当我为小型lenet5CNN 运行训练作业时,我在日志中看不到任何 GPU 活动(并且训练持续时间与非 GPU 实例一样长)。

更让人担心的是,len(tf.config.experimental.list_physical_devices('GPU')返回时0K.tensorflow_backend._get_available_gpus()却是空的。最后,如果我检查tf.debugging.set_log_device_placement(True)基本操作的设备放置(使用 ),如下所示:

a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)
Run Code Online (Sandbox Code Playgroud)

我明白了

Executing op _MklMatMul in device /job:localhost/replica:0/task:0/device:CPU:0 …
Run Code Online (Sandbox Code Playgroud)

gpu keras amazon-sagemaker

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