小编sol*_*les的帖子

本机Python函数从列表中删除NoneType元素?

我在Python中使用Beautiful Soup来从HTML文件中删除一些数据.在某些情况下,Beautiful Soup会返回包含两者string和NoneType对象的列表.我想过滤掉所有的NoneType对象.

在Python中,包含NoneType对象的列表不可迭代,因此列表推导不是一个选项.具体来说,如果我有一个lis包含的列表NoneTypes,并且我尝试做类似的事情[x for x in lis (some condition/function)],Python会抛出错误TypeError: argument of type 'NoneType' is not iterable.

正如我们在其他帖子中看到的那样,在用户定义的函数中实现此功能非常简单.这是我的味道:

def filterNoneType(lis):
    lis2 = []
    for l in links: #filter out NoneType
        if type(l) == str:
            lis2.append(l)
    return lis2
Run Code Online (Sandbox Code Playgroud)

但是,如果它存在,我很乐意使用内置的Python函数.我总是希望在可能的情况下简化我的代码.Python有内置函数可以NoneType从列表中删除对象吗?

python list nonetype

31
推荐指数
4
解决办法
4万
查看次数

在整数线性程序中使用min/max*

我正在尝试建立一个线性程序,其中目标函数max为决策变量中的各个系数增加额外的权重.

考虑到这一点,是有办法使用的方式min或max运营商内部线性规划的目标函数?

例:

Minimize
    (c1 * x1) + (c2 * x2) + (c3 * x3) + (c4 * max(c1*x1, c2*x2, c3*x3)) 
subject to
    #some arbitrary integer constraints:
    x1 >= ...
    x1 + 2*x2 <= ... 
    x3 >= ...
    x1 + x3 == ...
Run Code Online (Sandbox Code Playgroud)

请注意,这(c4 * max(c1*x1, c2*x2, c3*x3))是我关注的"额外重量"一词.我们让c4表示"额外重量"系数.另外,还要注意x1,x2和x3是整数,在这个特殊的例子.

我认为上述内容可能超出了线性编程提供的范围.但是,也许有办法将其破解/重新格式化为有效的线性程序?

如果这个问题完全超出了线性规划的范围,也许有人可以推荐一种更适合这类问题的优化范例?(任何允许我避免手动枚举和检查所有可能的解决方案的东西都会有所帮助.)

max mathematical-optimization linear-programming min

27
推荐指数
1
解决办法
2万
查看次数

CUDA如何为GPU分配设备ID?

当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个device ID.默认情况下,CUDA内核会执行device ID 0.您可以使用cudaSetDevice(int device)选择其他设备.

假设我的机器中有两个GPU:GTX 480和GTX 670.CUDA 如何确定哪个GPU device ID 0和哪个GPU device ID 1?


关于CUDA如何分配设备ID的想法(只是头脑风暴):

  • 计算能力的降序
  • PCI插槽号
  • 将设备添加到系统的日期/时间(刚刚添加到计算机的设备的ID号越高)

动机:我正在研究一些HPC算法,我正在为几个GPU进行基准测试和自动调整.我的处理器有足够的PCIe通道,可以在全带宽下将cudaMemcpys驱动到3个GPU.因此,我不打算不断地将GPU交换进机器,而是计划在计算机中保留3个GPU.我希望能够预测当我在计算机中添加或更换某些GPU时会发生什么.

cuda gpu gpgpu nvidia

27
推荐指数
4
解决办法
2万
查看次数

我应该在python中使用哪些库进行线性编程?

快速搜索"python线性编程"会产生大量的点击(例如这一点).通过它们,我看到了相当多的关于过时的依赖关系,糟糕的文档等的抱怨.

任何人都可以为python推荐一个没有头痛的(例如快速,文档齐全,易于安装,干净的API)线性编程库吗?

python mathematical-optimization linear-programming

22
推荐指数
2
解决办法
1万
查看次数

获取OpenCV图像类型的枚举名称(例如CV_32FC1)?

在OpenCV的C++界面中,检查图像类型似乎很容易.如果您有图像cv::Mat img = cv::imread("someImage.xyz"),那么您就是这样做的int theType = img.type().

但是,正如您所期望的那样,调用img.type()只给出一个整数,而不是枚举名称(例如CV_32FC1).

CV_32FC1如果我知道OpenCV枚举的整数值,是否有一种简单的方法可以打印出枚举名称(例如)?

c++ enums opencv image-processing image-formats

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

HoG功能如何以图形方式表示?

我正在实现"人体检测的定向梯度直方图"中的"定向梯度直方图"功能,我希望将结果可视化.有关这些功能的所有论文都使用标准可视化,但我找不到有关如何生成这些功能的任何描述.我要感谢解释或有用的链接.

opencv image-processing feature-extraction computer-vision

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

深入学习图像分类

在阅读了几篇关于深度学习和深度信念网络的论文后,我对它的工作方式有了基本的了解.但仍然坚持最后一步,即分类步骤.我在互联网上发现的大多数实现都涉及到生成.(MNIST数字)

是否有某些解释(或代码)可用于讨论使用DBN对图像(最好是自然图像或对象)进行分类?

此外,一些方向指针将非常有用.

machine-learning neural-network dbn deep-learning

18
推荐指数
2
解决办法
7613
查看次数

最快的HOG特征提取实现?

问题
多核CPU的最快开源HOG提取代码是什么?

动机
我正在研究实时对象检测应用程序.具体来说,我开发了可变形零件模型级联的变体,目标是30fps对象检测.我已经达到了这样的程度,即提取HOG功能比我的其他管道更加昂贵.我正在使用[ Felzenzwalb,Girshick等 ]参数进行HOG提取.也就是说,HOG描述符的多分辨率金字塔,并且每个描述符总共有32个用于定向的区间和一些其他线索.

目标
我想在60fps(16ms)上对多核CPU上的640x480图像进行多尺度HOG特征提取.

相关工作
我已经在6核Intel 3930k CPU上对一些现成的多尺度HOG实现进行了基准测试.对于640x480图像,我观察到以下性能数字:

  • Dubout的FFLD DPM代码中的HOG :19fps(52ms) - 使用OpenMP的C++,但没有矢量化
  • HOG in voc-release5 DPM代码:2.4fps(410ms) - 单线程 C++,加上一个Matlab包装器

我还尝试了OpenCV HOG提取代码.OpenCV版本可以工作,但它似乎是硬编码的Dalal-Triggs的HOG设置,OpenCV似乎不允许我使用相同的HOG参数(规范化方案,二进制位置特征等)作为[Felzenzwalb, Girshick等人].OpenCV版本本身也不支持多尺度HOG,尽管您可以自己进行下采样并为每个比例调用OpenCV HOG.我不记得OpenCV HOG性能是什么样的.

最后的想法

  1. 最快的HOG实施 - FFLD - 似乎在桌面上留下了很多性能.我没有做过GFLOP估计,但我注意到FFLD的HOG代码不使用任何SSE/AVX矢量化.没有那么多的控制流,所以矢量化似乎是一个廉价的加速机会.
  2. 我这里没有提到GPU HOG实现.我已经尝试过groundHOG/CUHOG和fasthog.CUHOG作者声称在NVIDIA GTX560上提取20fps(50ms) HOG.但是,英特尔CPU是我的应用程序的目标平台,将完整的HOG金字塔从GPU复制到CPU非常昂贵.

c++ performance image-processing computer-vision

17
推荐指数
1
解决办法
1万
查看次数

使用Flask服务器的面向对象的Python?

我正在使用Flask将一些数据处理代码暴露为Web服务.我想要一些我的Flask函数可以访问的类变量.

让我带你走过我被困的地方:

from flask import Flask
app = Flask(__name__)

class MyServer:
  def __init__(self):
    globalData = json.load(filename)

  @app.route('/getSomeData')
  def getSomeData():
    return random.choice(globalData) #select some random data to return

if __name__ == "__main__":
  app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

当我跑到getSomeData()Flask外面时,它工作正常.但是,当我用Flask运行时,我得到了500 internal server error.这里没有魔法,Flask不知道它应该初始化一个MyServer对象.如何将MyServer实例提供给app.run()命令?

我可以承认失败并投入globalData数据库.但是,还有另外一种方法吗?

python flask

16
推荐指数
3
解决办法
1万
查看次数

使用英特尔IPP的OpenCV Mat图像?

我最近开始使用Intel Performance Primitives(IPP)进行图像处理.对于那些没有听说过IPP的人,可以将IPP视为MKL的模拟图像处理而不是线性代数.

我已经在OpenCV中实现了一个有点复杂的视觉系统,我想换掉一些OpenCV例程(例如卷积和FFT)来实现更快的IPP例程.我的OpenCV代码总是使用cv::Mat图像数据结构.但是,基于IPP代码样本,似乎IPP更喜欢CIppiImage数据结构.

我的系统在OpenCV中进行了几次图像转换,然后我想在IPP中做一些事情,然后在OpenCV中做更多的工作.这是让OpenCV和IPP很好地协同发挥的天真方式:

 cv::Mat = load original image
 use OpenCV to do some work on cv::Mat
 write cv::Mat to file

 CIppiImage = read cv::Mat from file //for IPP
 use IPP to do some work on CIppiImage
 write CIppiImage to file

 cv::Mat = read CIppiImage from file
 use OpenCV to do more work on cv::Mat
 write final image to file
Run Code Online (Sandbox Code Playgroud)

但是,这有点乏味,读/写文件可能会增加整体执行时间.


我试图让它在图像处理程序中更加无缝地在OpenCV和IPP之间交替.以下是一些可以解决问题的方法:

  1. 是否有一个班轮将转换cv::Mat到CIppiImage,反之亦然?
  2. 我对cv::Mat实现细节非常熟悉,但我不太了解CIppiImage …

c opencv image-processing computer-vision intel-ipp

14
推荐指数
1
解决办法
2792
查看次数