• [技术干货] ModelArts中Keras训练、模型保存时遇见的几个小问题和解决
    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') ```
  • [问题求助] keras-contrib库访问异常
    3月份还可以用这个keras-contrib包,突然从5月份开始,无法获取了。之前以为是两会原因,现在发现还是无法获取。
  • [技术干货] 高手那么多keras也要熊一下!
    (开源西安大赛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小白也拉出了喜爱的模型。工程化工具对业务人员来说是多么的强大呜呜呜!嘿嘿希望有更多的人能参与其中,共建生态共筑未来!      一切都来自互联网,如有侵权请联系本人删除.
  • [问题求助] 图像分类综合应用中用Keras加载预训练模型一直失败
    图像分类综合应用中的dog_and_cat_train.py文件中base_model = VGG16(include_top=False, weights='imagenet', input_shape=(ROWS, COLS, CHANNELS), pooling='avg')直接在文件中修改为weight='imagenet',但会出现time out 的问题。官网给出的解决方案如下:首先是1方法,没有找到~/.keras/models文件,并且下载文件还是缓慢;之后对于2方法,将预训练模型h5文件下载到本地然后上传到OBS中,希望能调用预训练模型,之后尝试了相对路径与绝对路径但都不起作用,还是报错尝试的引用路径格式如下:vgg16_path='./imagenet/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5' vgg16_path='/alex-bucket1/dog_and_cat_recognition/imagenet/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5' vgg16_path='obs://alex-bucket1/dog_and_cat_recognition/imagenet/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'
  • [问题求助] keras如何在notebook上调用gpu
    环境是tf 1.8 gpu版本开头加了os.environ['CUDA_VISIBLE_DEVICES'] = '0'也是以tensorflow为后端运行的,按道理说,只要检测到有GPU,代码自动在GPU上运行。但是训练代码的时候,跑的很慢,显卡利用率也为0。
  • [问题求助] 进行模型推理时调用keras.model.predict显示内核似乎已经死亡,它将自动重启
  • [AI大赛] 关于使用keras训练模型config信息该怎么配置的问题
    请问如果我想使用keras来训练模型的话,这里的config信息该怎么填写:比如model_algorithm和model_type该填什么相应的推理文件的代码也需要更改吗?
  • [问题求助] 请问有人跑过以tensorflow为后端的Keras中的Resnet50网络吗?能在Ascend 310上运行吗?
    请问有人跑过以tensorflow为后端的Keras中的Resnet50网络吗?能在Ascend 310上运行吗?有没有例子提供参考呀?
  • [问题求助] Modelarts训练作业中keras问题
    我用Modelarts在训练作业上使用自己代码,在pip-requirements.txt中安装的keras==2.1.6,在训练过程中,在最后保存模型的时候用keras.modelcheckpoint函数保存是出现OSError:OSError: Unable to create file (unable to open file: name = 's3://dronet/dronet/data/out/weights_001.h5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 242)应该是pip装的keras不支持S3路径保存,程序中的np和opencv读取数据都能用moxing提取再转换,但keras用的自带函数保存,这个无法用moxing提取转换解决。出错代码: # Save model with the lowest validation loss    weights_path = os.path.join(FLAGS.experiment_rootdir, 'weights_{epoch:03d}.h5')    writeBestModel = ModelCheckpoint(filepath=weights_path, monitor='val_loss',                                     save_best_only=True, save_weights_only=True)
  • [问题求助] pb模型转om模型时StopGradient算子不支持问题
    StopGradient算子在om模型中只是透传数据,并不是必须数据处理步骤。所以当在pb模型转om模型遇到StopGradient算子不支持的问题时,总的思想是在pb模型生成的时候就去掉StopGradient算子。ckpt模型转pb模型时去掉输出无关算子    见 https://blog.csdn.net/u011511601/article/details/80262707   2. keras的h5模型转pb模型去掉输出无关算子   见 https://github.com/amir-abdi/keras_to_tensorflow在h5转pb的时候,如果使用weight和json文件,可能报错:ValueError: No model found in config file.大致是认为keras保存的权重和json文件中没有模型信息。这个和keras的模型保存有关。keras的模型保存网上有很多帖子,例如:https://blog.csdn.net/jclian91/article/details/83038861如果weight和json的保存方式无法转为pb模型,那么我们可以使用model.save()方法保存方法来保存模型。具体做法:找到模型保存为weight和json文件的地方(model.save_weights()和model.to_json()),或者模型加载的地方(model.load_weights())调用mode.save()保存模型。运行应用程序的训练命令,触发模型的保存这样保存的模型使用 https://github.com/amir-abdi/keras_to_tensorflow 中转pb的命令时就不会报错了
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第014期keras2.2.4 安装配置指南
                                             1、简介Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化类别:工具2、基础环境类别子项版本获取地址(方法)华为云华为云虚拟机RC3(916)--OSCentOS7.5Kernel4.14软件包Keras2.2.43、依赖安装安装python3-h5py-2.6.0-7.fc26.aarch64.rpm rpm -ivh python3-h5py-2.6.0-7.fc26.aarch64.rpm(需要依赖,按照提示安装如下依赖包即可)hdf5-1.8.18-1.fc26.aarch64.rpmlibstdc++-9.1.1-2.el7.aarch64.rpm liblzf-3.6-17.fc30.aarch64.rpm python3-numpy-1.13.0-1.fc27.aarch64.rpmpython3-six-1.10.0-5.3.1.noarch.rpm安装python36-scipy.aarch64 yum install python36-scipy.aarch64(需要依赖,按照提示安装如下依赖包即可)yum install -y python36   python36-pip.noarch blas-devel  lapack-devel   atlas-develpython36-numpy-f2py-1.10.4-7.el7.aarch64numpy-1.7.1-13.el7.aarch64 python36-setuptools-39.2.0-3.el7.noarch安装tensorflow请参照《华为云鲲鹏云服务最佳实践TensorFlow1.2.1安装配置指南》安装PyYAMLwget   https://files.pythonhosted.org/packages/9f/2c/9417b5c774792634834e730932745bc09a7d36754ca00acf1ccd1ac2594d/PyYAML-5.1.tar.gzPip3.6 install PyYAML-5.1.tar.gz4、组件编译安装    下载编译安装keras,结果如下图wget   https://github.com/keras-team/keras/archive/2.2.4.tar.gztar -zxvf 2.2.4.tar.gzcd keras-2.2.4/python36 setup.py install    5、系统配置     无6、测试测试内容:查看keras版本号输入python36进入python,输入如下命令import keras as kk.__version__ 测试结果:见下图  7、参考信息http://rpmfind.net/linux/RPM/index.htmlhttps://src.fedoraproject.org/ 8、FAQQ:安装h5py时,yum安装后识别不了,源码编译报错如下,无法构建A:可能是安装版本的问题,建议参照本文所依赖版本安装。Q:相关依赖包已经下载至本地,安装时仍然提示依赖问题?A:可以使用yum localinstall解决相关依赖问题。
  • [技术干货] 代码中自动下载Keras预训练模型速度缓慢或者失败怎么办
    代码中自动下载Keras预训练模型速度缓慢或者失败怎么办当执行代码base_model = VGG16(weights='imagenet', include_top=False)时,如果本地没有下载过相应的预训练模型,Keras就会自动去网络上下载。如果自动下载的速度慢或者失败,可以将预训练模型放到Notebook本地路径~/.keras/models/下来解决。原理是Keras会先从本地路径~/.keras/models/下寻找预训练模型,如果找到,就会直接加载本地的预训练模型,而不会从网络下载。有以下两种方式将模型文件放到Notebook本地:进入Notebook terminal,然后切换到~/.keras/models/路径下,使用wget <URL>命令从网上下载预训练模型至Notebook本地(推荐)。部分预训练模型的URL如下:https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg19_weights_tf_dim_ordering_tf_kernels_notop.h5https://github.com/fchollet/deep-learning-models/releases/download/v0.1/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5其他预训练模型的URL可以从该网址查找https://github.com/fchollet/deep-learning-models/releases 。从网上下载预训练模型至本地,然后上传至OBS,最后从OBS下载至Notebook本地。可以从https://github.com/fchollet/deep-learning-models/releases 网址找到所有Keras官方预训练模型的下载链接。部分预训练模型的下载链接见方法1。上传文件至OBS,然后从OBS下载至Notebook本地的方法参考此FAQ
  • [技术干货] 如何将Keras格式的模型转换为TensorFlow格式的模型
    如何将Keras格式的模型转换为TensorFlow格式的模型Keras保存的模型格式是.h5,ModelArts推理支持的TensorFlow模型的格式是.pb,可以通过Python脚本将Keras模型转换为TensorFlow模型,用于ModelArts推理。Python脚本见dog_and_cat_train.py中的save_model_to_serving函数。其中,model是Keres模型对象, export_path是TensorFlow模型的输出位置。
  • [技术干货] ModelArts是否支持Keras
    ModelArts是否支持Keras?Keras是一个用Python编写的高级神经网络API,它能够以TensorFlow、CNTK或Theano作为后端运行。ModelArts支持tf.keras,创建AI引擎为TensorFlow的Notebook后,可执行!pip list查看tf.keras的版本。 TensorFlow Keras指南请参考:https://www.tensorflow.org/guide/keras?hl=zh-cn
  • [问题求助] 【求助】keras训练的.h5模型如何发布到华为云?
    早些时候使用keras框架训练了一个垃圾分类的模型,该模型基于keras.applications.inception_v3,并在最后增加一个全连接层以匹配数据集模型框架和参数都保存到一个.h5文件里.h5文件地址如下https://pan.baidu.com/s/1iNvM4zqa89FgFqWt8kfIsA后来想发布到华为云的时候发现发布模型不支持keras框架,只支持TensorFlow框架的.pd文件请问如何将.h5模型转换为TensorFlow的模型,并将模型框架和参数分开保存?网上有一些样例https://www.jianshu.com/p/45e575555896https://www.cnblogs.com/chenzhen0530/p/10685944.htmlhttps://blog.csdn.net/g11d111/article/details/84136404但是都没有讲.h5模型文件与.pd模型文件到底有什么区别,希望能有个样例讲了各种机器学习框架输出的模型文件的具体区别的
总条数:31 到第
上滑加载中