keras 的 Deeplabv3+ 实现遇到的问题
代码大佬都已经写好了,具体参考:https://github.com/bonlime/keras-deeplab-v3-plus
git clone 下来以后,按照指南要训练自己的数据集,只要设置好自己的数据大小和类别就可以了
from model import Deeplabv3
deeplab_model = Deeplabv3(input_shape=(384, 384, 3), classes=4)
问题1:我的数据集不是一张张小图片,而是一个大的遥感影像tif,如何训练这个数据
解决:用 gdal 读取得到它的 np.array,再通过生成器一小块一小块输入
问题2:但是这样的生成器无法打乱顺序,把多景影像标签和图像 zip 起来后也无法用 random.shuffle 打乱图片顺序
解决:现在只能每次都按顺序读入,应该对训练影响不大
设想:后续想法是设置一个随机数列,根据这个随机数列读取指定大小范围,这样是把步长变为了1,会有好多样本
问题3:验证集和训练集只能按 tif 分,如何能随机取
设想:随机数列解决
问题4:运行一直报错,各种错,先后有
module 'tensorflow._api.v1.compat' has no attribute 'v1'
unsupported operand type(s) for /: 'Dimension' and 'float'
解决:直接 git clone 下来的是用最新版 tf2.0 写的,需要升级自己的 tf 或者用作者之前版本的实现,在这里用了之前版本的 keras 实现,在命令行输入一下代码
git clone https://github.com/bonlime/keras-deeplab-v3-plus/
cd keras-deeplab-v3-plus/
git checkout 714a6b7d1a069a07547c5c08282f1a706db92e20
问题5:写的生成器生成的标签最后一维是1,导致运行一直报错,维度不匹配
解决:这个写的是用了 one-hot 编码的,需要把标签转换成 one-hot,用 “ from keras.utils import to_categorical ”,to_categorical(x, num_classes=n)把 x 里从 0 到 n-1的值根据大小扩展到 n 维,若最大值和类别数目不同会报错
问题6:评价指标 loss 和各种系数不在正常范围内
解决:一开始以为是 one-hot 编码问题,一直尝试用 k.argmax 去得到1维的 tensor,死活弄不出来,报错有:数据类型不对,用 K.cast 强制转换解决,tensor 不能和数值相加,用argmax导致梯度无法回流等。睡了一觉想想不能用 argmax,他就是要在每一个维度上计算出相应指标再求平均,原来在不是 one-hot 编码里用的函数都还是对的,那问题出在老版本里最后没有用激活函数,给他加个激活函数以后一切都正常了。
问题7:作者说没有实现 weight_decay,需要的自己加
还未解决:不知道去哪加
keras 的 Deeplabv3+ 实现遇到的问题的更多相关文章
- [Keras] Develop Neural Network With Keras Step-By-Step
简单地训练一个四层全连接网络. Ref: http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/ 1 ...
- keras 中如何自定义损失函数
http://lazycoderx.com/2016/10/09/keras%E4%BF%9D%E5%AD%98%E6%A8%A1%E5%9E%8B%E6%97%B6%E4%BD%BF%E7%94%A ...
- keras安装
找对工具真的很重要,周末和学霸折腾了一天才装了几个包,问了同事找了一个方便的包,装起来不要太快啊.二十分钟全部搞定. 一.Anaconda 真是大杀器,牛到飞起来,一键部署,所有常用的机器学习包全部包 ...
- ubuntu系统theano和keras的安装
说明:系统是unbuntu14.04LTS,32位的操作系统,以前安装了python3.4,现在想要安装theano和keras.步骤如下: 1,安装pip sudo apt-get install ...
- neurosolutions 人工神经网络集成开发环境 keras
人工神经网络集成开发环境 : http://www.neurosolutions.com/ keras: https://github.com/fchollet/keras 文档 http ...
- Keras官方Example里Mnist-cnn的调试运行
问题:老板让测试运行Keras官网里的Mnist-cnn.py,结果从下载数据就是一路坑-- 当前环境:Ubuntu12.04.python2.7.Keras 1.1.1(不知道这个版本号对不对,在启 ...
- [Keras] mnist with cnn
典型的卷积神经网络. Keras傻瓜式读取数据:自动下载,自动解压,自动加载. # X_train: array([[[[ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0. ...
- [Keras] Install and environment setting
Documentation: https://keras.io/ 1. 利用anaconda 管理python库是明智的选择. conda update conda conda update anac ...
- linux install Theano+Tensorflow+Keras
安装过程中,网络状态一定要好,如果安装过程中出现time out的提示信息,今天就可以洗洗睡啦,等明天网络状态好的时候再安装. 安装过程出现不知名的错误的时候,执行第一步,update一下 1.#up ...
随机推荐
- 【Java基础】【03运算符&if语句】
03.01_Java语言基础(逻辑运算符的基本用法)(掌握) A:逻辑运算符有哪些 &,|,^,! &&,|| B:案例演示 逻辑运算符的基本用法 注意事项: a:逻辑运算符一 ...
- DriverManager 驱动管理器类简介 JDBC简介(三)
驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中 后续的处理就可以对这个列表进行操作 简言之,驱动管理器,就是字面含义,主要负责就是管理 驱动 概述 ...
- Mybatis源码之StatementType
在mybatis中StatementType的值决定了由什么对象来执行我们的SQL语句.本文来分析下在mybatis中具体是怎么处理的. StatementType 1.StatementType ...
- Captcha服务(后续2)— 改造Captcha服务之Asp.Net Core项目中如何集成TypeScript
环境准备 .Net Core 版本:下载安装.Net Core SDK,安装完成之后查看sdk版本 ,查看命令dotnet --version,我的版本是2.2.101 IDE: Visual Stu ...
- Java开发笔记(三十九)日期工具Date
Date是Java最早的日期工具,编程中经常通过它来获取系统的当前时间.当然使用Date也很简单,只要一个new关键字就能创建日期实例,就像以下代码示范的那样: // 创建一个新的日期实例,默认保存的 ...
- Windows系统 应用或游戏 打开出现0xc000007b错误 解决方法
1.使用directX修复工具(推荐) 标准版 增强版 标准版备用地址 增强版备用地址 2. 重新安装DirectX 9.0 安装包(安装包体积大) 微软官方离线安装包 摘录CSDN博客 运行游戏时出 ...
- Hdu 3001 Travelling 状态DP
题目大意 一次旅游,经过所有城市至少一次,并且任何一座城市访问的次数不能超过两次,求最小费用 每个城市最多访问两次,用状态0,1,2标识访问次数 把城市1~N的状态按照次序连接在一起,就组成了一个三进 ...
- TypeScript,初次见面,请多指教 ?
为什么用 TS ? 说实话,最开始并没有想把 TS 用到实际项目中来,一来是感觉"类型"会限制 JS 的优势(好吧,就是浪写浪惯了):二来听闻 TS + Redux 的酸爽滋味,有 ...
- vue + elementUi + upLoadIamge组件 上传文件到阿里云oss
<template> <div class="upLoadIamge"> <el-upload action="https://jsonpl ...
- vuex最详细完整的使用用法
来自:https://blog.csdn.net/qq_35430000/article/details/79412664#commentBox github仓库地址:https://github. ...