小编dla*_*nts的帖子

优雅的网格搜索python/numpy

我有一个有一堆参数的函数.我不想手动设置所有参数,而是要执行网格搜索.我有一个每个参数的可能值列表.对于每个可能的参数组合,我想运行我的函数,该函数报告我的算法在这些参数上的性能.我想将这个结果存储在一个多维矩阵中,以便后面我可以找到最大性能的索引,这反过来会给我最好的参数.以下是代码的编写方式:

param1_list = [p11, p12, p13,...]
param2_list = [p21, p22, p23,...] # not necessarily the same number of values
...

results_size = (len(param1_list), len(param2_list),...)
results = np.zeros(results_size, dtype = np.float)

for param1_idx in range(len(param1_list)):
  for param2_idx in range(len(param2_list)):
    ...
    param1 = param1_list[param1_idx]
    param2 = param2_list[param2_idx]
    ...
    results[param1_idx, param2_idx, ...] = my_func(param1, param2, ...)

max_index = np.argmax(results) # indices of best parameters!
Run Code Online (Sandbox Code Playgroud)

我想保留第一部分,我按原样定义列表,因为我希望能够轻松地操作我搜索的值.

我还希望最终得到结果矩阵,因为我将可视化更改不同参数如何影响算法的性能.

但是,中间的位是相当重复和笨重的(特别是因为我有很多参数,我可能想添加或删除参数),我觉得应该有一个更简洁/优雅的方式来初始化结果矩阵,迭代所有索引,并设置适当的参数.

那么,有吗?

python numpy

20
推荐指数
3
解决办法
2万
查看次数

使用cmake构建c ++项目的正确方法?

我一直在努力解决这个问题,而我与cmake的冒险只会产生一些我非常肯定不正确的黑客解决方案.

我创建了一个包含多个文件的库,如下所示:

-libfolder
  -codepart1folder
    -CMakeLists.txt
    -codepart1.cpp
    -codepart1.hpp
  -codepart2folder
  -codepart3folder
  -lib.cpp
  -lib.hpp
  -CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

我写了一个CMakeLists文件来编译库(经过一些实验),我可以生成一个lib.a文件.现在我想将此代码作为库包含在其他项目中,并通过lib.hpp中的接口访问它.在目录结构方面,以及我需要在根项目中放入CMakeLists.txt的最佳方法是什么?

我目前的尝试是将-libfolder作为子文件夹添加到我当前的项目中,并添加命令:

include_directories(${PROJECT_SOURCE_DIR}/libfolder)
link_directories(${PROJECT_BINARY_DIR}/libfolder)
add_subdirectory(libfolder)
target_link_libraries(project lib)
Run Code Online (Sandbox Code Playgroud)

当我运行make时,库编译得很好,但是当project.cpp编译时,它会抱怨它找不到codepart1.hpp(它包含在lib.hpp中,包含在project.cpp中).

我怀疑这是做错的方法,但我不能浏览CMake文档并找到一个关于设置这样的项目的好教程.请帮助,CMake大师!

c++ makefile compilation cmake

9
推荐指数
2
解决办法
8798
查看次数

Linux上无损avi编码

我正在尝试使用opencv编写视频.对我来说这很重要 - 因此它必须是一个无损编解码器.我在Ubuntu 12.04上使用OpenCV 2.4.1

以前,我使用的是fourcc代码0.这给了我想要的确切结果,并且我能够完美地恢复图像.

我不确定发生了什么,但截至最近的更新(2012年7月20日左右),出现了问题,我无法再使用这个4cc代码编写文件了.我真的不记得它是什么,但它可能来自更新,从我的软件中心删除一些软件,以及我在一般清洁期间做的一些其他事情......

当我使用mediainfo(http://www.fourcc.org/identifier/)检查旧文件时,我看到以下结果:

Complete name                            : oldsample.avi
Format                                   : AVI
Format/Info                              : Audio Video Interleave
Format profile                           : OpenDML
File size                                : 1.07 GiB
Duration                                 : 41s 467ms
Overall bit rate                         : 221 Mbps
Writing application                      : Lavf53.5.0
Video
ID                                       : 0
Format                                   : RGB
Codec ID                                 : 0x00000000
Codec ID/Info                            : Basic Windows bitmap format. 1, 4 and 8 bpp     versions are palettised. 16, 24 and 32bpp contain raw RGB samples
Duration                                 : 41s …
Run Code Online (Sandbox Code Playgroud)

opencv ffmpeg codec gstreamer fourcc

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

在 scikit learn 中是否可以使用复数作为目标标签?

我正在尝试使用 sklearn 来预测代表旋转的变量。由于在旋转的极端情况下从 -pi 到 pi 的不幸跳跃,我认为更好的方法是使用复数作为目标。这样,从 1+0.01j 到 1-0.01j 的错误就不会那么严重了。

我找不到任何描述 sklearn 是否支持复数作为分类器目标的文档。从理论上讲,距离度量应该可以正常工作,因此它至少应该适用于某些回归算法。

谁能建议我如何让回归算法以复数为目标进行操作?

python numpy scipy scikit-learn

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

标签 统计

numpy ×2

python ×2

c++ ×1

cmake ×1

codec ×1

compilation ×1

ffmpeg ×1

fourcc ×1

gstreamer ×1

makefile ×1

opencv ×1

scikit-learn ×1

scipy ×1