首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用Tensorflow实现数组的部分替换

    tensorflow不能对张量进行直接赋值操作,如果你尝试修改一个tensor中的内容,会报下面的错误: TypeError: 'Tensor' object does not support item...不过,经过不懈的研究,上面的需求还是解决了!我们一起来看看实现步骤!...我们有两个输入,一个是原始的二维张量,另一个是每一行的最小值: choose = tf.placeholder(tf.int64,[None,5]) minValue = tf.placeholder...这里,我们首先判断每个位置的数是否小于最小值,如果小于最小值,返回1,大于等于最小值,返回0,那么使用arg_max函数就可以返回第一个小于最小值的位置的索引: x = tf.tile(tf.reshape...如果还有简单的方法实现上面的需求,欢迎留言哟!

    3.7K20

    EAST、PixelLink、TextBoxes++、DBNet、CRNN…你都掌握了吗?一文总结OCR必备经典模型(二)

    CRNN网络结构包含三部分,如图15所示,从下到上依次为:卷积层,使用CNN,作用是从输入图像中提取特征序列;循环层,使用RNN,作用是预测从卷积层获取的特征序列的标签(真实值)分布;转录层,使用CTC...图7CRNN架构 CRNN的输入是100x32归一化高度的词条图像,基于7层CNN(一般使用VGG16)提取特征图,把特征图按列切分(Map-to-Sequence),然后将每一列的512维特征输入到两层各...在训练阶段,CRNN将训练图像统一缩放至100×32;在测试阶段,针对字符拉伸导致识别率降低的问题,CRNN保持输入图像尺寸比例,然后将图像高度统一为32个像素,卷积特征图的尺寸动态决定LSTM时序长度...将这个长度为字符类别数的特征向量作为CTC层的输入。因为每个时间步长都会生成一个输入特征向量 x^T,输出一个所有字符的概率分布y^T,所以输出为 40 个长度为字符类别数的向量构成的后验概率矩阵。...CRNN采取的架构是CNN+RNN+CTC,CNN提取图像像素特征,RNN提取图像时序特征,而CTC归纳字符间的连接特性。转录层输入是一个序列y =y1, . . . , yT,其中T是序列的长度。

    1.2K31

    如何使用TensorFlow中的Dataset API(使用内置输入管道,告别‘feed-dict’ )

    翻译 | AI科技大本营 参与 | zzq 审校 | reason_W 本文已更新至TensorFlow1.5版本 我们知道,在TensorFlow中可以使用feed-dict的方式输入数据信息,但是这种方法的速度是最慢的...而使用输入管道就可以保证GPU在工作时无需等待新的数据输入,这才是正确的方法。...幸运的是,TensorFlow提供了一种内置的API——Dataset,使得我们可以很容易地就利用输入管道的方式输入数据。在这篇教程中,我们将介绍如何创建和使用输入管道以及如何高效地向模型输入数据。...创建一个迭代器:使用创建的数据集来构造一个Iterator实例以遍历数据集 3. 使用数据:使用创建的迭代器,我们可以从数据集中获取数据元素,从而输入到模型中去。...当一个数组中元素长度不相同时,使用这种方式处理是很有效的。

    2.8K80

    使用TensorFlow实现神经网络的介绍

    TensorFlow的典型“流” 每个图书馆都有自己的“实现细节”,即一种写在其编码范例之后的方式。...# import tensorflow 在TensorFlow中实现神经网络 注意:我们可以使用不同的神经网络架构来解决这个问题,但为了简单起见,我们深入实施了前馈多层感知器。...让我们来定义我们的神经网络架构。 我们定义一个具有3层的神经网络; 输入,隐藏和输出。 输入和输出中的神经元数量是固定的,因为输入是我们的28×28图像,输出是表示该类的10×1矢量。...如果您已经使用scikit学习,您可能会知道一个高级别的图书馆如何抽象出“底层”的实现方式,为终端用户提供了一个更简单的界面。...虽然TensorFlow的大部分实现都已经被抽象出来了,但高级库正在出现,如TF-slim和TFlearn。

    85940

    基于PaddlePaddle 2.0动态图实现的CRNN文字识别模型

    CRNN 本项目是PaddlePaddle 2.0动态图实现的CRNN文字识别模型,可支持长短不一的图片输入。CRNN是一种端到端的识别模式,不需要通过分割图片即可完成图片中全部的文字识别。...CRNN的结构主要是CNN+RNN+CTC,它们分别的作用是,使用深度CNN,对输入图像提取特征,得到特征图。...CRNN的结构如下,一张高为32的图片,宽度随意,一张图片经过多层卷积之后,高度就变成了1,经过paddle.squeeze()就去掉了高度,也就说从输入的图片BCHW经过卷积之后就成了BCW。...该训练支持长度不一的图片输入,但是每一个batch的数据的数据长度还是要一样的,这种情况下,笔者就用了collate_fn()函数,该函数可以把数据最长的找出来,然后把其他的数据补0,加到相同的长度。...同时该函数还要输出它其中每条数据标签的实际长度,因为损失函数需要输入标签的实际长度。

    1.8K30

    Fast-SCNN的解释以及使用Tensorflow 2.0的实现

    本文中使用的代码并不是作者的正式实现,而是我对论文中描述的模型的重构的尝试。 随着自动驾驶汽车的兴起,迫切需要一种能够实时处理输入的模型。...这里,所有3个层都使用2的stride和3x3的内核大小。 现在,让我们首先实现这个模块。首先,我们安装Tensorflow 2.0。我们可以简单地使用谷歌Colab并开始我们的实现。...然后导入Tensorflow: import tensorflow as tf 现在,让我们首先为我们的模型创建输入层。...使用这个代码块使得卷积的实现在整个实现过程中易于理解和重用。...为了创建模型,如上所述,我们使用了来自TF.Keras的函数api。这里,模型的输入是学习下采样模块中描述的初始输入层,输出是最终分类器的输出。

    93130

    Fast-SCNN的解释以及使用Tensorflow 2.0的实现

    本文中使用的代码并不是作者的正式实现,而是我对论文中描述的模型的重构的尝试。 随着自动驾驶汽车的兴起,迫切需要一种能够实时处理输入的模型。...这里,所有3个层都使用2的stride和3x3的内核大小。 现在,让我们首先实现这个模块。首先,我们安装Tensorflow 2.0。我们可以简单地使用谷歌Colab并开始我们的实现。...然后导入Tensorflow: import tensorflow as tf 现在,让我们首先为我们的模型创建输入层。...使用这个代码块使得卷积的实现在整个实现过程中易于理解和重用。...为了创建模型,如上所述,我们使用了来自TF.Keras的函数api。这里,模型的输入是学习下采样模块中描述的初始输入层,输出是最终分类器的输出。

    46410

    在浏览器中使用TensorFlow.js

    检测模型 DocTR中可以实现了不同的体系结构,但TensorFlow团队选择了一个非常轻的体系结构用于客户端,因为设备硬件可能因人而异。...DocTR使用了一个带有DB(可微分二值化)头的mobilenetV2主干。实现细节可以在DocTR Github中找到。团队人员训练这个模型的输入大小为(512,512,3),以减少延迟和内存使用。...DocTR其有一个私有数据集,由130,000个带注释的文档组成,用于训练这个模型。 识别模型 DocTR使用的识别模型也是较轻的架构:具有mobilenetV2骨干的CRNN(卷积循环神经网络)。...它利用亚历克斯·格雷夫斯(Alex Graves)引入的CTC损耗来高效解码序列。在该模型中,文字图像的输入尺寸为(32,128,3),使用填充来保持作物的纵横比。...模型转换和代码实现 由于最初模型是使用TensorFlow实现的,因此需要进行Python转换才能在web浏览器中大规模运行。

    27810

    CV学习笔记(二十一):CRNN+CTC

    上次的一篇文章说了下DenseNet,这一篇文章来说一下CRNN+CTC的识别原理以及实现过程。...整个CRNN分为了三个部分: ①:卷积层:提取特征(代码输入32*256*1) ②:循环层:使用深层双向RNN,预测从卷积层获取的特征序列的标签(真实值)分布(64*512) ③:转录层:使用CTC,代替...这篇文章的难点在于: ①:使用深度双层RNN ②:使用CTC(CTC原理极其难懂) 三:CRNN代码 CRNN算法输入100*32归一化高度的词条图像,基于7层CNN(普遍使用VGG16)提取特征图,把特征图按列切分...T可以认为是RNN最大时间长度 ,依照本文代码就是有64个时间时间输入,且每个输入的列向量有512....再叠加一层BLSTM,叠加方法就是把每一个输入相应的BLSTM层的输出作为下一层BLSTM神经网络层相应节点的输入,由于两者序列长度是一一相应的,所以非常好叠加这两层神经网络。

    2.2K70

    使用Tensorflow实现一个简单的神经网络

    输入层、隐藏层、输出层的数目分别为2、3、1; 隐藏层和输出层的激活函数使用的是 ReLU; 训练的样本总数为 512,每次迭代读取的批量为 10; 交叉熵为损失函数,并使用 Adam 优化算法进行权重更新...import tensorflow as tf from numpy.random import RandomState batch_size= 10 w1=tf.Variable(...w2=tf.Variable(tf.random_normal([ 3 , 1 ],stddev= 1 ,seed= 1 )) # None 可以根据batch 大小确定维度,在shape的一个维度上使用...tf.placeholder(tf.float32,shape=( None , 2 )) y=tf.placeholder(tf.float32,shape=( None , 1 )) #激活函数使用...ReLU a=tf.nn.relu(tf.matmul(x,w1)) yhat=tf.nn.relu(tf.matmul(a,w2)) #定义交叉熵为损失函数,训练过程使用Adam算法最小化交叉熵

    55440

    CRNN论文翻译——中文版

    因此,最流行的深度模型像DCNN[25,26]不能直接应用于序列预测,因为DCNN模型通常对具有固定维度的输入和输出进行操作,因此不能产生可变长度的标签序列。...条件概率的公式简要描述如下:输入是序列y=y1,...,yTy = y_1,...,y_T,其中TT是序列长度。...使用批归一化层训练过程大大加快。 我们在Torch7[10]框架内实现了网络,使用定制实现的LSTM单元(Torch7/CUDA),转录层(C++)和BK树数据结构(C++)。...CRNN能够获取不同尺寸的输入图像,并产生不同长度的预测。它直接在粗粒度的标签(例如单词)上运行,在训练阶段不需要详细标注每一个单独的元素(例如字符)。...在场景文本识别基准数据集上的实验表明,与传统方法以及其它基于CNN和RNN的算法相比,CRNN实现了优异或极具竞争力的性能。这证实了所提出的算法的优点。

    2.4K80

    CV学习笔记(二十一):CRNN+CTC

    上次的一篇文章说了下DenseNet,这一篇文章来说一下CRNN+CTC的识别原理以及实现过程。...整个CRNN分为了三个部分: ①:卷积层:提取特征(代码输入32*256*1) ②:循环层:使用深层双向RNN,预测从卷积层获取的特征序列的标签(真实值)分布(64*512) ③:转录层:使用CTC,代替...这篇文章的难点在于: ①:使用深度双层RNN ②:使用CTC(CTC原理极其难懂) 三:CRNN代码 CRNN算法输入100*32归一化高度的词条图像,基于7层CNN(普遍使用VGG16)提取特征图,把特征图按列切分...在训练过程中,通过CTC损失函数的指导,实现字符位置与类标的近似软对齐。 以我现在使用的代码为例: ?...再叠加一层BLSTM,叠加方法就是把每一个输入相应的BLSTM层的输出作为下一层BLSTM神经网络层相应节点的输入,由于两者序列长度是一一相应的,所以非常好叠加这两层神经网络。

    89840

    手把手教你移动端AI应用开发(三)——部署环节关键代码最详解读

    模型部署阶段: 模型转换:如果是Caffe, TensorFlow或ONNX平台训练的模型,需要使用X2Paddle工具将模型转换到飞桨的格式。...如果是Caffe, TensorFlow或ONNX平台训练的模型,需要使用X2Paddle工具将模型转换到Paddle模型格式,再使用opt优化。...,输出为文字的区域坐标 2. ch_rec_mv3_crnn_opt.nb:文字识别的模型,输入的文字检测的结果,输出为文字识别结果 OCR的过程其实是两个模型的串行工作过程,将文字检测模型的输出结果作为文字识别模型的输入...C++程序代码的作用:向下调用OpenCV库和Paddle Lite库中的函数,来实现模型的推理预测功能(底层实现);向上提供接口给上层的功能应用层的java程序调用。...C++的代码(上层的应用开发使用Java,底层的具体实现使用C++,此项目中两者都要开发)。

    2.8K20

    『OCR_Recognition』CRNN

    但是此法已经有点过时了,现在更流行的是基于深度学习的端到端的文字识别,即我们不需要显式加入文字切割这个环节,而是将文字识别转化为序列学习问题,虽然输入的图像尺度不同,文本长度不同,但是经过 DCNN 和...(说一定程度是因为虽然输入图像不需要精确给出每个字符的位置信息,但实际上还是需要对原始的图像进行前期的裁切工作) 构建 CRNN 输入特征序列; 其中还涉及到了 CTC 模块,目的是对其输入输出结果...整个CRNN网络结构包含三部分,从下到上依次为: CNN(卷积层):使用深度 CNN,对输入图像提取特征,得到特征图; RNN(循环层):使用 双向RNN(BLSTM)对特征序列进行预测,对序列中的每个特征向量进行学习...1.2.3 RNN 因为 RNN 有梯度消失的问题,不能获取更多上下文信息,所以 CRNN 中使用的是 LSTM,LSTM 的特殊设计允许它捕获长距离依赖。 LSTM 是单向的,它只使用过去的信息。...我们知道一个特征向量就相当于原图中的一个小矩形区域,RNN 的目标就是预测这个矩形区域为哪个字符,即根据输入的特征向量,进行预测,得到所有字符的 softmax 概率分布,这是一个长度为字符类别数的向量

    3.9K40

    CRNN论文翻译——中英文对照

    因此,最流行的深度模型像DCNN[25,26]不能直接应用于序列预测,因为DCNN模型通常对具有固定维度的输入和输出进行操作,因此不能产生可变长度的标签序列。...由于CNN要求将输入图像缩放到固定尺寸,以满足其固定的输入尺寸,因为它们的长度变化很大,因此不适合类序列对象。在CRNN中,我们将深度特征传递到序列表示中,以便对类序列对象的长度变化保持不变。...条件概率的公式简要描述如下:输入是序列y=y1,...,yTy = y_1,...,y_T,其中TT是序列长度。...我们在Torch7[10]框架内实现了网络,使用定制实现的LSTM单元(Torch7/CUDA),转录层(C++)和BK树数据结构(C++)。...CRNN能够获取不同尺寸的输入图像,并产生不同长度的预测。它直接在粗粒度的标签(例如单词)上运行,在训练阶段不需要详细标注每一个单独的元素(例如字符)。

    2.2K00
    领券