小编Ale*_*x I的帖子

Tensorflow:如何替换或修改渐变?

我想在tensorflow中替换或修改op的梯度或图的一部分.如果我可以在计算中使用现有的梯度,那将是理想的.

在某些方面,这与以下内容相反tf.stop_gradient():在计算渐变时,我想要一个仅在计算渐变时使用的计算,而不是添加一个被忽略的计算.

一个简单的例子就是通过将它们与常数相乘(但不会将正向计算乘以常数)来简单地缩放渐变.另一个例子是将渐变剪辑到给定范围的东西.

python neural-network tensorflow

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

使用tesseract识别车牌

我正在开发一款可以识别车牌(ANPR)的应用程序.第一步是从图像中提取牌照.我正在使用OpenCV来检测基于宽高比的印版,这非常有效:

提取车牌

提取车牌

但正如您所看到的,OCR结果非常糟糕.

tesseract在我的Objective C(iOS)环境中使用.这些是init启动引擎时的变量:

// init the tesseract engine.
    tesseract = new tesseract::TessBaseAPI();
    int initRet=tesseract->Init([dataPath cStringUsingEncoding:NSUTF8StringEncoding], [language UTF8String]);
    tesseract->SetVariable("tessedit_char_whitelist", "BCDFGHJKLMNPQRSTVWXYZ0123456789-");
    tesseract->SetVariable("language_model_penalty_non_freq_dict_word", "1");
    tesseract->SetVariable("language_model_penalty_non_dict_word ", "1");
    tesseract->SetVariable("load_system_dawg", "0");
Run Code Online (Sandbox Code Playgroud)

如何改善结果?我是否需要让OpenCV进行更多的图像处理?或者有什么我可以用tesseract改进?

opencv tesseract image-processing objective-c ios

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

如何使用发电机生成输入来训练TensorFlow网络?

该TensorFlow 文档描述了一堆的方法来读取使用TFRecordReader,TextLineReader,QueueRunner等和队列数据.

我想做的事情要简单得多:我有一个python生成器函数,它产生无限的训练数据序列为(X,y)元组(两者都是numpy数组,第一个维度是批量大小).我只想用这些数据作为输入来训练网络.

是否有一个简单的自包含示例,使用生成数据的生成器训练TensorFlow网络?(沿着MNIST或CIFAR的例子)

python tensorflow

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

在不使用OpenMAX的情况下解码Raspberry Pi中的视频?

我正在寻找一个直接在Raspberry Pi上解码视频的例子,而不使用OpenMAX.

这解释了多媒体软件的不同层次:

覆盆子Pi架构

还有一个未在此处显示的附加层," MMAL "层(我相信)是围绕OpenMAX的Broadcom包装器.(如果没有,它将是一个OpenMAX替代品,位于内核驱动程序之上)例如,使用MMAL编写raspivid和raspistill.

我想要一个视频解码的例子,其中输入是原始H.264,输出是内存中的视频或屏幕上的视频.我想直接使用VCHIQ这样做,而不是使用OpenMAX.(主要是出于性能和灵活性的原因)

这个github存储库:https://github.com/raspberrypi/userland/包含上面显示的所有内容的源(橙色和绿色框; VCHIQ本身的源代码,VCHIQ之上的OpenMAX IL实现,以及OpenGL和EGL实现,. ..).所以在理论上它应该足以开始.问题是如何使用它是非常不明显的,即使一个人非常熟悉OpenMAX和一般的多媒体框架.

例如:vchiq_bulk_transmit()似乎是用于将视频发送到解码器的功能.但是如何初始化类型的第一个参数VCHIQ_SERVICE_HANDLE_T?结果在哪里,在帧缓冲区中,或在结果句柄中,还是......?

编辑可以通过使用vchiq提供视频解码的工作示例,显示调用序列的API演练(尽管不是一个工作示例)或指向足够的文档来编写它来收集赏金.一个工作的例子将得到一个巨额额外的赏金:)

c video decode raspberry-pi openmax

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

如何在Keras中将密集层转换为等效的卷积层?

我想使用Keras 做类似于完全卷积网络的论文(https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf).我有一个网络,最终使特征映射变平并通过几个密集层运行它们.我想将这样的网络中的权重加载到一个密集层被等效卷积替换的地方.

可以使用Keras附带的VGG16网络作为示例,其中最后一个MaxPooling2D()的7x7x512输出被展平,然后进入密集(4096)层.在这种情况下,Dense(4096)将被7x7x4096卷积替换.

我的真实网络略有不同,有一个GlobalAveragePooling2D()层而不是MaxPooling2D()和Flatten().GlobalAveragePooling2D()的输出是2D张量,并且不需要另外将其展平,因此包括第一个的所有密集层将被1x1卷积替换.

我已经看到了这个问题:Python keras如何将密集层转换为卷积层,如果不相同则看起来非常相似.问题是我无法得到建议的解决方案,因为(a)我使用TensorFlow作为后端,所以权重重新排列/过滤"旋转"不对,而且(b)我无法想象如何加载权重.将旧权重文件加载到新网络model.load_weights(by_name=True)中不起作用,因为名称不匹配(即使它们的尺寸不同).

使用TensorFlow时重新排列应该是什么?

如何加载重量?我是否创建了每个模型中的一个,在两者上调用model.load_weights()来加载相同的权重,然后复制一些需要重新排列的额外权重?

python neural-network conv-neural-network keras

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

张量流中的双线性上采样?

我想在TensorFlow中做一个简单的双线性调整(不一定是整数因子).例如,从(32,3,64,64)张量开始,我想要一个(32,3,96,96)张量,其中每个64x64使用双线性插值重新调整1.5倍.最好的方法是什么?

我希望这能支持任意因子> 1,而不仅仅是1.5.

注意:每个64x64上的操作与操作相同skimage.transform.rescale (scale=1.5, order=1).

python interpolation image image-resizing tensorflow

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

如何找到滞后过零点?

在numpy中,我想检测信号从(先前已经)低于某个阈值的点到高于某个其他阈值.这适用于诸如去抖动或在存在噪声等情况下的准确过零点之类的事情.

像这样:

import numpy

# set up little test problem
N = 1000
values = numpy.sin(numpy.linspace(0, 20, N))
values += 0.4 * numpy.random.random(N) - 0.2
v_high = 0.3
v_low = -0.3

# find transitions from below v_low to above v_high    
transitions = numpy.zeros_like(values, dtype=numpy.bool)

state = "high"

for i in range(N):
    if values[i] > v_high:
        # previous state was low, this is a low-to-high transition
        if state == "low":
            transitions[i] = True
        state = "high"
    if values[i] < v_low:
        state …
Run Code Online (Sandbox Code Playgroud)

python numpy debouncing

11
推荐指数
1
解决办法
4497
查看次数

如何在 CubeMX STM32 中使用 LL(低级)驱动程序?

我正在使用 STM32CubeMX 为 STM32F103 微控制器创建一个空白项目。使用 HAL 驱动程序(默认),我得到了一个快速运行的闪烁示例,但我想尝试使用 LL(低级)驱动程序而不是 HAL。

当我转到 CubeMX 中的项目 > 设置 > 高级设置时,我看到列出的外围设备,并且每个外围设备旁边都有一个下拉菜单,其中只有一个选项,HAL。根据文档,这是我可以为每个外围设备选择 LL 或 HAL 的地方。

如何在 STM32CubeMX 中启用 LL 驱动程序?

详细信息:我在 Ubuntu (16.04) 上全新安装了 STM32CubeMX (4.23.0) 并为 STM32F103C8 微控制器创建了一个新项目(这是在“Blue Pill”板上)。我正在使用 SW4STM32 IDE,除了我必须在配置文件中选择 STLink V2 而不是 V2.1 之外,一切都或多或少都是开箱即用的。

hal stm32 cubemx stm32f1

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

如何在SSE中有效地结合比较?

我想将以下代码转换为SSE ​​/ AVX:

float x1, x2, x3;
float a1[], a2[], a3[], b1[], b2[], b3[];
for (i=0; i < N; i++)
{
    if (x1 > a1[i] && x2 > a2[i] && x3 > a3[i] && x1 < b1[i] && x2 < b2[i] && x3 < b3[i])
    {
        // do something with i
    }
}
Run Code Online (Sandbox Code Playgroud)

这里N是一个小常量,比如说8. 8. if(...)语句在大多数情况下的计算结果为false.

第一次尝试:

__m128 x; // x1, x2, x3, 0
__m128 a[N]; // packed a1[i], a2[i], a3[i], 0 
__m128 b[N]; // packed b1[i], b2[i], b3[i], 0 …
Run Code Online (Sandbox Code Playgroud)

c optimization assembly sse avx

10
推荐指数
1
解决办法
2650
查看次数

如何使用硬件视频缩放器?

现代图形卡具有硬件视频缩放器,例如作为AMD Avivo,NVIDIA PureVideo或Intel ClearVideo的一部分.例如,AMD的Avivo白皮书说:

"图像输出缩放器支持多达6个垂直滤波器抽头和多达10个水平滤波器抽头.这些缩放器是高度可编程的高精度多相缩放器;它们适用于几乎任何比例的放大,或最多4个缩小:1".

问题: 如何从Windows程序中使用视频缩放器硬件?

假设已经存在解码的视频帧,例如在a中IDirect3DSurface9,并且目标是使用硬件缩放器在屏幕上显示该视频帧.我想使用像Media Foundation或DirectShow这样的Windows API,而不是使用特定于供应商的API.我主要兴趣倍增通过一个相当大的因素左右1.5-3x.

第二个问题是,如何控制视频缩放器硬件参数?(例如,上述多相滤波器中的滤波器系数)

编辑:赏金开始了.请提供在视频卡中使用视频缩放器硬件的任何方式的示例(这可能是特定于供应商的,或使用任何版本的DirectX/DirectShow/Media Foundation API).

编辑:更新:使用视频缩放器硬件的程序的一些示例:WinDVD,PowerDVD,madVR.我想知道如何完成他们的工作,即使用GPU的内置视频硬件缩放器,而不是使用D3D着色器和纹理采样器实现的缩放器.

windows directx video image video-processing

10
推荐指数
1
解决办法
3745
查看次数