acc定义代码 神经网络_【开源框架】paddlepaddle图像分类从模型自定义到测试

本文介绍了使用百度的PaddlePaddle框架进行图像分类任务的全过程,包括数据定义、网络构建、可视化及模型训练与测试。通过实例展示了PaddlePaddle与VisualDL的结合使用,以及训练过程中的acc和loss变化。
摘要由CSDN通过智能技术生成

2c5e03826ed58532b4cb6e038675b8c3.png

这一次我们讲讲paddlepadle这个百度开源的机器学习框架,一个图像分类任务从训练到测试出结果的全流程。

将涉及到paddlepaddle和visualdl,git如下:https://github.com/PaddlePaddle

相关的代码、数据都在我们 Git 上,希望大家 Follow 一下这个 Git 项目,后面会持续更新不同框架下的任务。

longpeng2008/LongPeng_ML_Course

01 paddlepaddle是什么

正所谓google有tensorflow,facebook有pytorch,amazon有mxnet,作为国内机器学习的先驱,百度也有PaddlePaddle,其中Paddle即Parallel Distributed Deep Learning(并行分布式深度学习),整体使用起来与tensorflow非常类似。

sudo pip install paddlepaddle

安装就是一条命令,话不多说上代码。

02 paddlepaddle训练

训练包括三部分,数据的定义,网络的定义,以及可视化和模型的存储。

2.1 数据定义

定义一个图像分类任务的dataset如下:

from multiprocessing import cpu_count
import paddle.v2 as paddle
class Dataset:
    def __init__(self,cropsize,resizesize):
        self.cropsize = cropsize
        self.resizesize = resizesize
    def train_mapper(self,sample):
        img, label = sample
        img = paddle.image.load_image(img)
        img = paddle.image.simple_transform(img, self.resizesize, self.cropsize, True)
        #print "train_mapper",img.shape,label
        return img.flatten().astype('float32'), label
    def test_mapper(self,sample):
        img, label = sample
        img = paddle.image.load_image(img)
        img = paddle.image.simple_transform(img, self.resizesize, self.cropsize, False)
        #print "test_mapper",img.shape,label
        return img.flatten().astype('float32'), label
    def train_reader(self,train_list, buffered_size=1024):
        def reader():
            with open(train_list, 'r') as f:
                lines = [line.strip() for line in f.readlines()]
                print "len of train dataset=",len(lines)
                for line in lines:
                    img_path, lab = line.strip().split(' ')
                    yield img_path, int(lab)
        return paddle.reader.xmap_readers(self.train_mapper, reader,
                                          cpu_count(), buffered_size)
    def test_reader(self,test_list, buffered_size=1024):
        def reader():
            with open(test_list, 'r') as f:
                lines = [line.strip() for line in f.readlines()]
                print "len of val dataset=",len(lines)
                for line in lines:
                    img_path, lab = line.strip().split(' ')
                    yield img_path, int(lab)
        return paddle.reader.xmap_readers(self.tes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值