运行U-net进行图像分割

 

运行环境:Windows平台下的TensorFlow

之前搭建过程:https://blog.csdn.net/u010327061/article/details/80150106

“数据准备:

  • 原始数据:首先准备数据,参考数据来自于 ISBI 挑战的数据集。数据可以在 这里 下载到,含30张训练图、30张对应的标签。30张测试图片,均为.tif 格式文件。
  • 增强后的数据 :谷歌云盘”

以上数据二选一就行

程序准备

GitHub 链接地址:https://github.com/decouples/Unet

程序含有2个文件,一个文件为data.py :该文件是用来将训练数据转化为.npy 格式文件,便于网络使用数据。当然还有其他功能如数据增强等,程序中已经进行了解释。另外一个文件:unet.py :该文件为unet网络结构定义与测试代码

运行网络


首先 :运行data.py :运行后会生成三个.npy文件 :  
imgs_mask_train.npy :训练图片标签 
imgs_train.npy : 训练图片 
imgs_test.npy : 测试图片。注意这个测试图片是最后你要测试的图片,而非训练中测试准确率的图片,测试准确率的图片和训练图片是在一起的,训练的时候会将训练图片分配一部分用于测试准确率等。
其次 :运行 unet.py :你需要修改的地方为第154行

model.fit(imgs_train, imgs_mask_train, batch_size=2, nb_epoch=10, verbose=1,validation_split=0.2, shuffle=True, callbacks=[model_checkpoint])1

batch_size 根据你的设备来修改,即每次输入几张图片,建议2~4张。 
nb_epoch=10 是训练多少次,一般20~50次。如果就30张图片的话,训练很快,几分钟就好了。


最后: test 文件夹下的图片的测试结果放在了results 文件夹下。

另外 :如果你在训练完后想再测试几张图片的话,直接将154行注释掉就行,再次运行unet.py :就会进行测试你放在test 文件夹下的图片,结果就会保存再results 文件夹下。“
 

以上文字来源于https://blog.csdn.net/awyyauqpmy/article/details/79290710

运行过程中遇到的问题:

1.文件夹结构:

2. merge函数问题 TypeError: 'module' object is not callable

原因:高版本的keras中的keras.layer.merge 函数有更改

from keras.layers import merge

merge6 = merge([drop4,up6], mode = 'concat', concat_axis = 3)

应改为:

from keras.layers import  concatenate, 

merge7 = concatenate([conv3,up7], axis = 3)

3.AttributeError: 'ProgbarLogger' object has no attribute 'log_values'

解决方案

This happens if steps_per_epoch is 0. Make sure that your batch size is not greater than the dataset size to avoid it.

针对这个代码,数据没有读进去,因为我是在Windows平台,文件路径应该是用“//",在Linux中是'\',而且没有“...\"我是用文件路径代替了...\

 

最后遇到了内存问题:

OOM when allocating tensor with shape[1,256,256,256] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

解决方法:

减少batch_size

或者减少每层卷积核个数,也就是减少网络参数:

eg:

 

最后你就可以在unet.py 的train函数和save函数中设定路径找到自己的训练结果啦

 

看懂了这个简单的代码,以后既可以动起小手敲代码咯

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值