在AI Studio上部署外部可以直接调用的云端服务
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在AI Studio上部署外部可以直接调用的云端服务相关的知识,希望对你有一定的参考价值。
简 介: 按照 百度上的快速部署的两个平台:EasyDL以及AI Studio体验馆 的例子,对于在云端部署可以直接调用的服务进行了测试。但最后没有能够测试成功。后面还需要通过具体的例子来测试完整进行AI Studio云端服务的功能。
关键词
: Paddle,云端服务
§01 部署应用
对于一个训练好的模型,直接部署在云端可以减少对于局部运算资源的需求。这在一些局域网络通讯条件良好的情况下是快速验证和系统搭建的方式。
在 百度上的快速部署的两个平台:EasyDL以及AI Studio体验馆 中按照说明初步测试了 Ai Studio 中的趣味体验馆的搭建过程,不过最终测试结果并没有完成通过。下面计划使用一个更加简单的模型进行搭建,熟悉网络部署的过程。
1.1 简单模型
这个简单模型是使用单层的BP网络来实现 2021年人工神经网络第三题:函数逼近
▲ 图1.1.1 二维函数的3D图像
1.1.1 样本
▲ 图1.1.2 二维函数图像模型
from headm import * # =
from mpl_toolkits.mplot3d import Axes3D
def fxy(x,y):
return 3*(1-x)**2*exp(-(x**2+(y+1)**2))+\\
10*(x/5-x**3-y**5)*exp(-(x**2+y**2))-\\
exp(-((x+1)**2+y**2))/3
grid_num = 100
x = linspace(-4,4,grid_num)
y = linspace(-4,4,grid_num)
x,y = meshgrid(x,y)
xx = x.flatten()
yy = y.flatten()
ff = fxy(xx,yy).reshape(x.shape)
ax = Axes3D(plt.figure(figsize=(12,8)))
ax.plot_surface(x,y,ff,
rstride=1,
cstride=1,
cmap=plt.cm.Blues)
plt.show()
▲ 图1.1.3 二维函数图像模型
1.2 建立BP网络
1.2.1 建立数据加载对象
(1)数据加载代码
def fxy(x,y):
return 3*(1-x)**2*exp(-(x**2+(y+1)**2))+\\
10*(x/5-x**3-y**5)*exp(-(x**2+y**2))-\\
exp(-((x+1)**2+y**2))/3
grid_num = 100
x = linspace(-4,4,grid_num)
y = linspace(-4,4,grid_num)
x,y = meshgrid(x,y)
xx = x.flatten()
yy = y.flatten()
ff = fxy(xx,yy)
xy = array(list(zip(xx,yy)))
print(shape(ff), shape(xy))
class Dataset(paddle.io.Dataset):
def __init__(self, num_samples):
super(Dataset, self).__init__()
self.num_samples = num_samples
def __getitem__(self, index):
data = xy[index]
label = ff[index]
return paddle.to_tensor(data,dtype='float32'), paddle.to_tensor(label,dtype='float32')
def __len__(self):
return self.num_samples
_dataset = Dataset(len(ff))
train_loader = paddle.io.DataLoader(_dataset, batch_size=1000, shuffle=True)
(2)测试数据加载代码
data = train_loader().next()
print("data: ".format(data))
data: [Tensor(shape=[10, 2], dtype=float32, place=CPUPlace, stop_gradient=True,
[[ 0.52525252, -3.19191909],
[-1.57575762, 1.73737371],
[ 3.27272725, -1.73737371],
[ 4. , 2.78787875],
[ 2.14141417, -2.38383842],
[-3.35353541, 2.94949484],
[ 0.68686867, -0.52525252],
[ 1.73737371, -2.70707059],
[ 2.30303025, -2.14141417],
[ 3.83838391, -0.28282827]]), Tensor(shape=[10, 1], dtype=float32, place=CPUPlace, stop_gradient=True,
[[ 0.09874938],
[-0.50992441],
[-0.00000177],
[-0.00000011],
[ 0.02933590],
[-0.00000427],
[-0.56279999],
[ 0.04941760],
[ 0.02375283],
[-0.00019992]])]
1.2.2 构建网络
class bpnn(paddle.nn.Layer):
def __init__(self, ):
super(bpnn, self).__init__()
self.L1 = paddle.nn.Linear(in_features=2, out_features=120)
self.L2 = paddle.nn.Linear(in_features=120, out_features=1)
def forward(self, x):
x = self.L1(x)
x = paddle.nn.functional.sigmoid(x)
x = self.L2(x)
return x
model = bpnn()
---------------------------------------------------------------------------
Layer (<以上是关于在AI Studio上部署外部可以直接调用的云端服务的主要内容,如果未能解决你的问题,请参考以下文章
百度上的快速部署的两个平台:EasyDL以及AI Studio体验馆