『我与飞桨的故事』PaddlePaddle最菜程序员的飞桨之旅

PaddlePaddle最菜程序员的飞桨之旅—三岁python

你们好,这里是你们熟悉的三岁,眨眼间又到了年尾,一年中冲KPI的时间到了,借着这个机会再来 一篇博客,谈谈本身和 paddle的相识相知与相互学习。linux

下载安装命令

## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

我的介绍

我是三岁,一个代码界的小白,因为各类缘由,代码路不顺,学习时间短,从去年开始自学python,看了嵩天老师的慕课视频,可是一直是C语言的思考模式,有点没法接受,一直耽搁着。一眨眼到了年初,对python的痴迷让我继续寻找着视频,不停学习,敲代码。接触了博客,逐渐开始了,写博客的旅程,本身会的,本身的理解都放到了博客上,就在这时看到了一则推文,今后踏上了一条“不归之路”git

结缘之路

在这里插入图片描述

短短一段话,句句戳心房!
小白也能够学深度学习,了解人工智能???
几行代码就能够实现人工智能???
看看我如今的水平怎么样!走!!!程序员

一个错误的决定打开了我与paddle的认识之路
在这里插入图片描述算法

逐步的对深度学习的认识,对AI Studio平台的逐步了解编程

在这里插入图片描述

看着前期的课程与深度学习绝不相干,可是到最后才发现那些都是基础,为后期的课程作好了坚实的基础。直到PaddleHub的出现改变了我对这些的见解。架构

# 安装paddlehub
!pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装口罩检测模型
!hub install pyramidbox_lite_mobile_mask==1.1.0
# 进行识别
!hub run pyramidbox_lite_mobile_mask --input_path "data/data31681/901.jpg"
import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
test_img_path = "data/data31681/test.jpeg"
img = mpimg.imread(test_img_path) 

# 展现待预测图片
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()

在这里插入图片描述

# 预测结果展现
test_img_path = "./detection_result/test.jpeg"
img = mpimg.imread(test_img_path)

# 展现预测结果图片
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()

在这里插入图片描述
短短的几行代码(不不不就一行命令就把结果显现了)仔细一看这个是linux代码不是python的,通过文档查看也就是几行的事情。框架

import paddlehub as hub
import cv2

module = hub.Module(name="pyramidbox_lite_mobile_mask")

test_img_path = "data/data31681/test.jpeg"

# set input dict
input_dict = { 
 
   "data": [cv2.imread(test_img_path)]}
results = module.face_detection(data=input_dict)
print(results)
[2020-04-25 09:37:05,353] [    INFO] - Installing pyramidbox_lite_mobile_mask module
[2020-04-25 09:37:05,383] [    INFO] - Module pyramidbox_lite_mobile_mask already installed in /home/aistudio/.paddlehub/modules/pyramidbox_lite_mobile_mask
[2020-04-25 09:37:05,506] [    INFO] - Installing pyramidbox_lite_mobile module-1.1.0
Downloading pyramidbox_lite_mobile
[==================================================] 100.00%
Uncompress /home/aistudio/.paddlehub/tmp/tmpt3rs1qq6/pyramidbox_lite_mobile
[==================================================] 100.00%
[2020-04-25 09:37:06,400] [    INFO] - Successfully installed pyramidbox_lite_mobile-1.1.0
[2020-04-25 09:37:06,568] [    INFO] - 133 pretrained paramaters loaded by PaddleHub
[2020-04-25 09:37:06,615] [    INFO] - 0 pretrained paramaters loaded by PaddleHub
[{ 
 
   'data': { 
 
   'label': 'MASK', 'left': 678.9846324920654, 'right': 893.2966804504395, 'top': 241.9092297554016, 'bottom': 487.231333732605, 'confidence': 0.9711812}, 'id': 1}]

看到’label’: ‘MASK’,恍然大悟这就是有戴口罩的啊!ide

短短的几行,不经让我一个见识短浅的小白一脸迷茫,人工智能真这么简单便捷???学习

直到本身实践了项目——五人识别:

在这里插入图片描述

第一次接触到了,训练集、测试集、验证集(6:2:2),第一次知道了acc和loss还有epoch等专业名词及其的做用。

第一次知道CPU和GPU的不一样区别

在这里插入图片描述

第一次……

万万没想到第一次认识那么简单

第一次觉得人工智能如此简单,第一次认为本身又双叒叕能够了,直到接触到了强化学习——世界冠军带你从零实践,发现本身的身影的卑微。

进一步了解

从深度学习的基本理论,到所须要的数学基础,从PARL强化学习到
迷宫游戏,四轴飞行器的实际操做,在代码和虚拟环境中学习提升
小小的游戏,无不让头顶一凉,寒冬的冷风犹如凛冽的刀片从闪闪发光的头顶飘过,不由瑟瑟发抖。
做为代码人,咱们有代码魂,咱们要默默的敲代码而后惊艳咱们本身。

Model

分别搭建Actor、Critic的Model结构,构建QuadrotorModel。

class ActorModel(parl.Model):
    def __init__(self, act_dim):
        hid_size = 100

        self.fc1 = layers.fc(size=hid_size, act='relu')
        self.fc2 = layers.fc(size=act_dim, act='tanh')

    def policy(self, obs):
        hid = self.fc1(obs)
        logits = self.fc2(hid)
        return logits
class CriticModel(parl.Model):
    def __init__(self):
        hid_size = 100

        self.fc1 = layers.fc(size=hid_size, act='relu')
        self.fc2 = layers.fc(size=1, act=None)

    def value(self, obs, act):
        concat = layers.concat([obs, act], axis=1)
        hid = self.fc1(concat)
        Q = self.fc2(hid)
        Q = layers.squeeze(Q, axes=[1])
        return Q
# 建立飞行器环境
env = make_env("Quadrotor", task="hovering_control")
env.reset()
obs_dim = env.observation_space.shape[0]
act_dim = env.action_space.shape[0]


# 根据parl框架构建agent
model = QuadrotorModel(act_dim) # Model(act_dim)
algorithm = DDPG(
    model, gamma=GAMMA, tau=TAU, actor_lr=ACTOR_LR, critic_lr=CRITIC_LR)
agent = QuadrotorAgent(algorithm, obs_dim, act_dim) 


# parl库也为DDPG算法内置了ReplayMemory,可直接从 parl.utils 引入使用
rpm = ReplayMemory(int(MEMORY_SIZE), obs_dim, act_dim)
# 7. 请选择你训练的最好的一次模型文件作评估
ckpt = 'model_dir/steps_700320.ckpt'  # 请设置ckpt为你训练中效果最好的一次评估保存的模型文件名称

agent.restore(ckpt)
evaluate_reward = evaluate(env, agent)
logger.info('Evaluate reward: {}'.format(evaluate_reward)) # 打印评估的reward

短短的代码,磨光了头皮,无不让小白瑟瑟发抖,多少次似曾想要放弃,可是做为代码人哪有放弃的道理。日日夜夜,在哪一个即将截止的夜晚终于克服了报错,得到了一个较好的结果,再次化身调参小白,随机调参。

不断的相互认知

在不断的学习与提升中,相互学习,渐渐的接触中知道了paddle的范围,知道了paddleHubpaddle的区别,paddlex,EasyDL等等产品不断迭代更新,PaddlePaddle2.0也即将问世,又是能够重头开始学习,不断提升的一个好机会。

总结——肺腑之言

虽然我是一个不起眼的小白,在这些领域没有太多的涉猎和造诣,可是我认为咱们做为新时代的青年,应该支持咱们的国产框架,咱们的成长不断促使paddle的成长。咱们的需求也是paddle的发展方向,虽然目前咱们的框架没有国外的一些框架那么的完善,可是咱们的进步与发展以及和他们没有太大的差别了,因此咱们要继续努力,不断前进,从我这个小白作起。

Paddle一个小白也能够简单学会的深度学习框架

加油吧!这里是三岁,让咱们乘风破浪继续前进,2021Paddle会更好!!!

下载安装命令

## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

本文同步分享在 博客“三岁学编程”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索