训练并导出tensorflow Lite模型中的一些问题 及解决办法

环境配置

1.ubuntu18.04连接镜像autonist.iso

安装ubuntu或者centos时,vmware提示"快速安装,然后会使用一个autonist.iso文件来快速安装,并且装完系统重启了,它插入一个操作:安装vm-tools"。
https://www.cnblogs.com/zjutzz/p/6049328.html

断开autonist的连接出现的问题:终端中使用apt-get安装时总是出现各种错误,一味的百度也解决不了,只有连接autonist.iso

2.ubunto14.04安装python

安装python3.5,tensorflow目前支持python2.7,python3.5

#sudo apt-get updata
#sudo apt-get install python-dev python-pip

卸载默认python后的重新安装

#sudo apt-get uninstall python
#python --version
#cd /usr/bin
#ls
#cd /
#sudo install python3.5

将默认的python设置为python3.5
先删除默认的python软链接

#sudo rm /usr/bin/python

然后创建一个新的软连接指向需要的python版本

#sudo ln -s /usr/bin/python3.5 /usr/bin/python

3.升级python版本之后pip升级及pip升级之后不能用的办法

#sudo apt-get install python-pip -y

创建pip软连接:

#sudo ln -s /usr/local/bin /usr/bin/pip
#pip --version

4.安装tensorflow

如果tensorflow安装失败就是pip有问题,参考上面pip问题的解决

#sudo pip2 install tensorflow==1.9.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

5.给文件添加权限的办法

#chomd 777 文件

6.虚拟机里全屏的问题

百度这个问题总是需要装什么vm-tools,可是并没有什么用
在终端执行:

#xrandr
#xrandr -s 1920x1440

7.ubuntu18.04安装vmtools
若是没有什么特殊的问题,可以参考百度。but,总是会有特殊问题的,vm tools是灰色的怎么解决。

第一种:百度常见的解决办法
第二种:
1、打开默认存在的那个小虚拟光驱, 发现里面有一个upgra64(或32)的可执行文件. 将这个小光驱里的文件都复制到有执行权限的目录, 执行upgra64

#./upgra64

2、此时WMware会提示你是否断开当前光驱的连接, 选择是.
3、然后会发现原先的小光驱不见了, 取而代之的是一个Vmware-Tools的光驱
4.对vmtools解压缩

#sudo tar -zxvf VMwareTools-9.6.1-1378637.tar.gz

进入解压后的文件夹执行安装

#sudo ./vmware-install.pl

之后一路回车何输入Y就可以解决了(一般是没有必要安装百度上的某些说法再去建立路径的,除非某一步实在过不去),具体流程可灵活些,有些步骤我可能忘了。出现

Enjoy
–the VMware tam

说明安装成功。可以参考以下连接

https://www.cnblogs.com/labc/articles/5991326.html

到此为之,ubuntu中的环境就弄好了。

代码

1.数据集预处理

新建data_preprocessing.py文件,撰写代码实现自动对原始数据集进行大小裁剪以及分集(训练集、验证集、测试集)的处理,首先导入模块,然后,构造处理图像尺寸的函数image_split()。参数:
original_path——图片所在文件夹的原始路径
species——植物名字
stardand_path——保存路径
set——集名
inds——图片序列号:

from PIL import Image
import os
#如果不加以下两行可能会报错OSError.image file is truncated(8 bytes not processed)
import PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES=True
import random
def image_split(original_path,species,stardand_path,set,inds):
for img in inds:
        # 以原始路径 植物名字 序列号为图片路径打开图片
        plant_path  = os.path.join(original_path,species,img)
        in_img = Image.open(plant_path)
        in_img = in_img.convert('RGB')
        out_img = in_img.resize((224,224))
        #以原始路径 集名 植物名字为该文件集路径
        set_path = os.path.join(stardand_path,set,species)
        if not os.path.exists(set_path):
            os.makedirs(set_path)
        out_img.save(os.path.join(set_path,img))

#构造主函数
def main():
    #读取图片
    original_path = 'bjfu_plants'#图片原始路径
    stardand_path = 'PlantsData'#图片分集后的路径

    for species in os.listdir(original_path):#植物名list
        files = sorted(os.listdir(os.path.join(original_path,species)))
        img_num = len(files)
        test_num = int(img_num/10*2)#测试数量
        valid_num = int((img_num-test_num)/10*2)#验证数量
        train_num = int(img_num-test_num-valid_num)#训练数量
        print('%s:%d,train:%d,valid:%d,test:%d' %(species,img_num,train_num,valid_num,test_num))

        random.shuffle(files)#打乱图片顺序
        image_split(original_path,species,stardand_path ,"train",files[0:train_num])
        print("%s finish!"%os.path.join(stardand_path,'train',species))#训练集
        image_split(original_path,species,stardand_path,'valid',files[train_num:train_num+valid_num])
        print("%s finish!"% os.path.join(stardand_path,'valid',species))#验证集
        image_split(original_path, species, stardand_path, 'test', files[train_num + valid_num:])
        print("%s finish!"%os.path.join(stardand_path,'test',species))#测试集

if __name__=='__main__':
    main()

运行程序结果:
在这里插入图片描述运行程序后,图片的存储样式为:
在这里插入图片描述
在这里插入图片描述

2.训练与验证
注意:使用的数据集只能由jpg格式的
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值