-
tf1.14,使用keras2onnx 完成onnx模型的转换,onnx模型能够正常使用。用atc转为om后预估会报错:Default MaxPoolingOp only supports NHWC on device type CPU转换脚本:atc --model={models_dir}/{onnx_model_name} --framework=5 --output={output_dir}/{om_model_name} --input_shape="{input_name}:{input_shape}" --enable_small_channel=1 --soc_version=Ascend310 --log=info')input shape:(None,step,feature),分别是batch,sequence长度和特征维度报错op在tensorlfow中为GlobalMaxPool1D下面是acl的日志[EVENT] CCECPU(4066,python):2022-08-16-14:42:55.361.614 [tf_adpt_session_mgr.cc:398][tid:4076][TFAdapter] [sessionID:16599357285206909441] Create session success. [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.505.915 [aicpu_tf_kernel.cc:138][tid:4075][TFAdapter] AICPUKernelAndDeviceOp Init failure, kernel_id=0, op_name=MaxPool, error=Invalid argument: Default MaxPoolingOp only supports NHWC on device type CPU [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.012 [tf_adpt_session_mgr.cc:149][tid:4075][TFAdapter] [sessionID:16599357285206909441] Create kernel failure, kernel_id=0, op_name=. [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.031 [tf_adpt_session_mgr.cc:94][tid:4075][TFAdapter] [sessionID:16599357285206909441] Create kernel failed, kernel_id=0. [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.052 [tf_adpt_session_mgr.cc:64][tid:4075][TFAdapter] [sessionID:16599357285206909441] Failed to GetOrCreateKernel, kernel_id=0. [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.075 [tf_adpt_session_mgr.cc:433][tid:4075][TFAdapter] [sessionID:16599357285206909441] Run kernel on session failed. [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.090 [tf_adpt_api.cc:86][tid:4075][TFAdapter] [sessionID:16599357285206909441] Invoke TFOperateAPI failed. [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.106 [ae_kernel_lib_fwk.cc:234][TransformKernelErrorCode][tid:4075][AICPU_PROCESSER] Call tf api return failed:5, input param to tf api:0xfffef9e4a004 [ERROR] CCECPU(4066,python):2022-08-16-14:42:55.506.155 [aicpusd_event_process.cpp:1227][ExecuteTsKernelTask][tid:4075] Aicpu engine process failed, result[5]. ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.506.515 [engine.cc:1131]4096 ReportExceptProc:Task exception! device_id=0, stream_id=1, task_id=1, type=13, retCode=0x91, [the model stream execute failed]. ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.509.834 [device_error_proc.cc:667]4096 ProcessAicpuErrorInfo:report error module_type=0, module_name=E39999 ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.509.936 [device_error_proc.cc:667]4096 ProcessAicpuErrorInfo:An exception occurred during AICPU execution, stream_id:4, task_id:46, errcode:5, msg:aicpu execute failed. ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.114 [task.cc:746]4096 PrintAicpuErrorInfo:report error module_type=0, module_name=E39999 ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.142 [task.cc:746]4096 PrintAicpuErrorInfo:Aicpu kernel execute failed, device_id=0, stream_id=4, task_id=46. ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.242 [task.cc:764]4096 PrintAicpuErrorInfo:Aicpu kernel execute failed, device_id=0, stream_id=4, task_id=46, flip_num=0, fault so_name=, fault kernel_name=, fault op_name=Attention/Reshape_12:0_pooling, extend_info=(info_type:4, info_len:30, msg_info:Attention/Reshape_12:0_pooling). ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.270 [task.cc:3148]4096 ReportErrorInfo:model execute error, retCode=0x91, [the model stream execute failed]. ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.289 [task.cc:3120]4096 PrintErrorInfo:model execute task failed, device_id=0, model stream_id=1, model task_id=1, flip_num=0, model_id=5, first_task_id=65535 ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.450 [stream.cc:843]4066 GetError:[EXEC][DEFAULT]Stream Synchronize failed, stream_id=1 retCode=0x91, [the model stream execute failed]. ,0][ERROR] RUNTIME(4066,python):2022-08-16-14:42:55.510.487 [stream.cc:846]4066 GetError:[EXEC][DEFAULT]report error module_type=7, module_name=EE9999
-
介绍本文将讨论如何快速地从图像中删除文本,作为图像分类器的预处理步骤。删除文本可能有多种或多种原因,例如,我们可以使用无文本图像进行数据增强。在本教程中,我们将使用OCR(光学字符识别)检测图像中的文本,并在修复过程中填充照片中丢失的部分以生成完整的图像——以删除我们检测到的文本。处理为了从图像中删除文本,我们将执行以下三个步骤:1. 识别图像中的文本,并使用KerasOCR获取每个文本的边界框坐标。1. 对于每个边界框,应用一个遮罩来告诉算法我们应该修复图像的哪个部分。1. 最后,应用一种修复算法对图像的遮罩区域进行修复,从而得到一个无文本图像。### 实现Keras ocr简介KerasOCR提供现成的ocr模型和端到端训练管道,以构建新的ocr模型(请参见:https://keras-ocr.readthedocs.io/en/latest/).在这种情况下,我们将使用预训练的模型,它对我们的任务非常有效。KerasOCR将自动下载探测器和识别器的预训练权重。当通过Keras orc传递图像时,它将返回一个(word,box)元组,其中框包含四个角的坐标(x,y)。下面是一个快速示例:import matplotlib.pyplot as pltimport keras_ocrpipeline = keras_ocr.pipeline.Pipeline()#read image from the an image path (a jpg/png file or an image url)img = keras_ocr.tools.read(image_path)# Prediction_groups is a list of (word, box) tuplesprediction_groups = pipeline.recognize([img])#print image with annotation and boxeskeras_ocr.tools.drawAnnotations(image=img, predictions=prediction_groups[0])如果我们看一下prediction_groups,我们会看到每个元素对应一组坐标。例如,prediction_groups[0][10]如下:('tuesday', array(\[\[ 986.2778 , 625.07764\], \[1192.3856 , 622.7086 \], \[1192.8888 , 666.4836 \], \[ 986.78094, 668.8526 \]\], dtype=float32)) 数组的第一个元素对应左上角的坐标,第二个元素对应右下角,第三个元素是右上角,而第四个元素是左下角。#### cv2修复函数使用OpenCV应用修复算法时,需要提供两幅图像:1. 输入图像,包含我们要删除的文本。1. 遮罩图像,它显示图像中要删除的文本在哪里。第二个图像的尺寸应与输入的尺寸相同。Cv2具有两种修复算法,并允许应用矩形、圆形或线遮罩(请参考:https://opencv24-python-tutorials.readthedocs.io/en/latest/py_tutorials/py_photo/py_inpainting/py_inpainting.html)在这种情况下,我决定使用线遮罩,因为它们更灵活地覆盖不同方向的文本(矩形遮罩只适用于平行或垂直于x轴的单词,圆形遮罩将覆盖比较大的区域)。为了应用遮罩,我们需要提供线的起点和终点坐标以及线的厚度:起点将是框的左上角和左下角之间的中点,终点将是右上角和右下角之间的中点。对于厚度,我们将计算左上角和左下角之间的线长度。import mathimport numpy as npdef midpoint(x1, y1, x2, y2): x\_mid = int((x1 + x2)/2) y\_mid = int((y1 + y2)/2) return (x\_mid, y\_mid)#example of a line mask for the word "Tuesday"box = prediction\_groups\[0\]\[10\]x0, y0 = box\[1\]\[0\]x1, y1 = box\[1\]\[1\] x2, y2 = box\[1\]\[2\]x3, y3 = box\[1\]\[3\] x\_mid0, y\_mid0 = midpoint(x1, y1, x2, y2)x\_mid1, y\_mi1 = midpoint(x0, y0, x3, y3)thickness = int(math.sqrt( (x2 - x1)\*\*2 + (y2 - y1)\*\*2 ))#现在我们可以创建我们的遮罩:mask = np.zeros(img.shape\[:2\], dtype="uint8")cv2.line(mask, (x\_mid0, y\_mid0), (x\_mid1, y\_mi1), 255, thickness)#我们还可以检查遮罩区域,确保其正常工作。masked = cv2.bitwise\_and(img, img, mask=mask)plt.imshow(masked)最后,我们可以修复图像。在这种情况下,我们将使用cv2.INPAINT_NS,指得是“Navier-Stokes, Fluid Dynamics, and Image and Video Inpainting”一文中描述的修复算法。img_inpainted = cv2.inpaint(img, mask, 7, cv2.INPAINT_NS)plt.imshow(img_inpainted)正如你所看到的,“Tuesday”已从图片中删除。
-
【功能模块】keras.layers.concatenate【操作步骤&问题现象】1、编好用keras写的GoogLeNet的Inception模块的结构2、用Mindspore实现同样的模块,但是找了两天都没找到keras.layers.concatenate对应的Mindspore的哪个函数【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【操作步骤&问题现象】1、加载keras预训练模型时失败2、在基础镜像下,将文件预训练模型文件通过OBS拷贝到modelarts上的/home/work/.keras/models/ 可以正常通过(参考 https://bbs.huaweicloud.com/forum/thread-70328-1-1.html)3、但是在自定义镜像中,上述操作失败。4、出现 Exception: URL fetch failure on https://github.com/keras-team/keras-applications/releases/download/densenet/densenet169_weights_tf_dim_ordering_tf_kernels_notop.h5: None -- [Errno 110] Connection timed out 错误5、该如何解决通过 pycharm toolkit 训练模型时,下载预训练模型失败的问题?【截图信息】1.2.3.【日志信息】logs.txt
-
【操作步骤&问题现象】1、keras-yolo3算法,检测类别为42、上传.h5文件,转换caffe时报错:错误!目前无法转换文件 如何解决呢?【截图信息】
kuku&bibi
发表于2021-04-14 17:37:34
2021-04-14 17:37:34
最后回复
kuku&bibi
2021-05-11 10:55:09
1287 2 -
【功能模块】notebook【操作步骤&问题现象】基于tf.keras框架开发多分类模型,设置训练集和验证集是一样的,都是x=data_array,y=label_array_one_hotoptimizer = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)loss = 'categorical_crossentropy'metrics = ['accuracy']model.compile(loss=loss, optimizer=optimizer, metrics=metrics)history = model.fit(x=data_array,y=label_array_one_hot,epochs=50,batch_size=16,shuffle=False,validation_data=(data_array,label_array_one_hot))但是loss和val_loss竟然完全不一致,而且差距很大:Train on 100 samples, validate on 100 samples Epoch 1/50 100/100 [==============================] - 141s 1s/sample - loss: 4.1268 - acc: 0.0600 - val_loss: 3.6375 - val_acc: 0.1000 Epoch 2/50 100/100 [==============================] - 128s 1s/sample - loss: 3.0789 - acc: 0.0600 - val_loss: 4.0423 - val_acc: 0.1000 Epoch 3/50 100/100 [==============================] - 128s 1s/sample - loss: 1.9542 - acc: 0.2400 - val_loss: 4.7988 - val_acc: 0.1000 Epoch 4/50 100/100 [==============================] - 128s 1s/sample - loss: 0.5583 - acc: 0.8700 - val_loss: 4.6028 - val_acc: 0.1000 Epoch 5/50 100/100 [==============================] - 128s 1s/sample - loss: 0.1535 - acc: 0.9900 - val_loss: 4.7119 - val_acc: 0.1000 Epoch 6/50 100/100 [==============================] - 127s 1s/sample - loss: 0.0606 - acc: 1.0000 - val_loss: 4.3682 - val_acc: 0.1000 Epoch 7/50这是为什么呢?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
请问老师,由keras转换的pb文件,再转换成为om文件,部署到hilenskit是否可行?
-
我想把自己在本地训练好的Keras的.h5格式模型导入到ModelArts中,该怎么办呢
-
您好,我在部署keras的LSTM模型时,模型转换报错,而且模型框架很乱,这是为什么呢?代码和运行结果如下。之前转其他tensorflow的pb模型也出现过类似错误。模型框架也很混乱
-
我们在notebook上用keras框架写了yolov3,用该算法训练完后得到.h5模型将模型转为官网所需的模型包格式,但部署上线对图片进行预测出现了无法预测,请问我们是哪步出现了问题。预测的日志如附件所示。
-
那先从该项目的KF算法Tracker开始,项目中预设了几个调节选项:dist_thresh: distance threshold. When exceeds the threshold, track will be deleted and new track is created,距离阈值:超过阈值时,将删除轨迹并创建新轨迹max_frames_to_skip: maximum allowed frames to be skipped forthe track object undetected,超过多少帧没有识别,就放弃该物体,未检测到的跟踪对象允许跳过的最大帧数,可以设置小一些max_trace_lenght: trace path history lengthtrackIdCount: identification of each track object,每个跟踪对象的标识基数(在此之上累加)————————————————版权声明:本文为CSDN博主「悟乙己」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/sinat_26917383/article/details/86557399
-
ModelArts为我们的模型训练提供了一个很好的环境,能够利用云端强大的计算力,通过算法训练出模型。但在实际使用中却会在不经意间遇见一些小问题。 算法实现到模型训练完成,两者间有一个等待的过程,而云端环境训练的好处,就是你可以让让训练继续,自己本地机器转而去做其他,无需等待,当有结果后,去查验结果即可。但实际使用中,却会出现以下情况,开始训练后,你转而去做其他事情,可能将开发环境页面也给关闭,回来时查看时却发现既没有模型,而且训练似乎卡住,不再进行,而console中同样没有信息提示,这极有可能是在训练过程中出现了错误,譬如显存不足,然而由于你离开过网页,再次进入时,console中却没有提示信息,因而这段时间的等待变得毫无意义。这时候应该怎么解决呢? 使用Keras搭建的算法,往往在训练模型时会调用`model.fit_generator` 函数,而后使用`model.save`进行保存,为解决上述问题,可以有两种方式: 1. 训练时使用小批量训练,为batch_size,设置一个合理的值,尽可能避免最后GPU显存超出现象,但小批量训练往往会造成下降方向随机性增大,更慢达到收敛,因而还需额外进行一定的归一化,以及提高训练轮数epochs 2. 在训练小部分数据后,将一个粗糙模型能够保存下来,即使训练中途出现问题导致停滞,后续训练也能够在粗糙模型基础上进行,避免前功尽弃。而由于Keras本身的封装,在训练数据庞大的情况下,即使小批量,小epoch训练后保存模型,比如一轮训练后保存一次模型,也会遇见上述问题,此时则可以想办法降低每轮训练喂入的数据通过多轮最终实现对于整体数据的训练。举例而言,8000条数据,可以设定每次喂入数据为80条,训练次数为100次,每次从元数据中随机选出80条数据进行`model.fit_generator`训练,然后保存粗糙模型,然后再次进行训练,当次数为100次时已经对所有元数据进行训练,而且训练过程中对于粗糙模型的保存能够避免自己的努力被浪费的情况。 示例代码如下: ```python # 随机训练的num trainNum=80 # 随机评估的num valNum=80 batch_size = 4 for i in range(0,100): # 随机训练的index trainStartIndex=random.randint(0, num_train - 1-trainNum) trainEndIndex=trainStartIndex+trainNum # 随机评估的index valStartIndex=random.randint(num_train, len(lines)-1-valNum) valEndIndex=valStartIndex+valNum model.fit_generator(data_generator(lines[trainStartIndex:trainEndIndex], batch_size, input_shape, anchors, num_classes), steps_per_epoch=max(1, trainNum//batch_size), validation_data=data_generator(lines[valStartIndex:valEndIndex], batch_size, input_shape, anchors, num_classes), validation_steps=max(1, valNum//batch_size), epochs=10, initial_epoch=0) #callbacks=[logging, checkpoint]) model.save_weights(r'obs://juziwei/code/yolo3-keras/logs/trained_weights_stage_1.h5') ```
-
3月份还可以用这个keras-contrib包,突然从5月份开始,无法获取了。之前以为是两会原因,现在发现还是无法获取。
-
(开源西安大赛0.964分的keras源码)前言:西安大赛那么多高手,图像分类多数基本采用pytorch。话说学术界pytorch渐渐成为主流,TensorFlow成为工业界代表。keras收编后会被忘却么?本人释怀入门的keras,坚守依旧。简单粗暴的分享一下吧。 悲壮的keras 由30名 被各种黑科技碾压到97名。经历而为之才是keras的使命。有缘看到这里的朋友们,请别笑,我只是一个建行基层的客户经理,业务人员。我真的已经尽力了。本代码适用于ModelArts平台,也可以改为notebook或本地训练,可用于练手的数据集见西安大赛(“华为云杯”2019人工智能创新应用大赛)和垃圾分类挑战杯,源码就见附件吧。训练分三步走:1、只用FC层训练14个epoch。快速的遍历所有层尽力而为的获取特征。2、加载组归一化或BN、开启数据增强、随机裁剪翻滚等等,直至loss不在大幅下降。一般也就14个epoch。这样大大提升了模型的泛化能力!3、最后返璞归真关闭数据增强、随机裁剪翻滚等等特技!老老实实用全联接训练30个epoch收工。到此keras图像分类模型炼丹完毕。(本地acc0.9973) 技术都是你追我赶的,在wusaifei、子清等朋友的帮助下,接力MA小白也拉出了喜爱的模型。工程化工具对业务人员来说是多么的强大呜呜呜!嘿嘿希望有更多的人能参与其中,共建生态共筑未来! 一切都来自互联网,如有侵权请联系本人删除.
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签