基于 ACK Serverless 解锁你家萌宠的 AI 形象
必看!!必看!!必看!!
本实验为付费体验,需要消耗账号费用。体验后若不再需要使用,请及时释放资源,避免持续产生费用。
体验预估费用:
12.63 元(每小时)~16.35 元(每小时),完成全部实验预计 2 小时。
特别说明(请看完):
- 训练模型时间与您数据集大小有关,一般训练预计 30-40 分钟,完成全部实验预计 2 小时。
- 当您使用训练好的模型生成图时,也会持续产生云资源费用,费用与您使用时长相关。当您不再需要使用时,请及时释放资源,避免持续产生费用。
- 因为 GPU 资源库存情况不同,本实验会基于库存随机创建 GPU 资源,如 A10、T4、V100 等,不同 GPU 卡费用不同,所以实际费用请您以最终账单为准,账单每小时出一次,您可在用户中心>账单详情中查看。
计费详细说明
产品名 |
计费类型 |
费用 |
计费链接 |
限时免费 |
目前公测中,限时免费 |
||
按量付费 |
11.74元/小时~15.46元/小时 |
||
按量付费 |
0.03元/小时 * 2个 (流量费:0.8元/GB) |
||
按量付费 |
0.195元/CU * 2个 |
||
按量付费 |
0.22元/小时 * 2个 (流量费:0.8元/GB) |
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
快速进入产品控制台
- 实验手册
- 实验报告
一、准备数据集
- 挑选20张萌宠图片,要求萌宠主体清晰。支持.png、.jpg、 .jpeg、 .webp、.bmp 格式的照片。
注意:其他图片格式,会造成训练模型时报错,请一定要确认照片格式!如果您发现有些照片格式不符合要求,请使用图片转换工具,请不要通过给图片重命名来修改格式,也会导致训练报错。
- 解释说明:挑选您家萌宠单独照片,为了模型训练效果,尽量保持照片背景干净,不要与人的合照,也不要与其他动物合照,保证有萌宠正脸照,尽量不要所有照片都是背面或者侧面。
- 正确示范:
- 错误示范:
- 在您PC电脑上新建文件夹,文件夹名为您萌宠英文名(或中文名拼音,更推荐),将20张照片放入文件夹中。
- 解释说明:若您萌宠有英文名,例如Bob,则您文件夹名为Bob;若您萌宠是中文名,例如桃子,则您文件夹名为taozi。
说明:我们在镜像中内置了“taozi”数据集,包含了一只名叫桃子的小猫的20张照片。如果您不想要准备自己的宠物数据集,但是想要体验容器化弹性部署、模型镜像加速拉取以及 Stable Diffusion 模型训练的过程,您可以直接使用“taozi”数据集来训练。
二、查看数据集路径,并保存路径
查看本地数据集路径方法如下。
- 如果您电脑是 Mac 系统:
您可直接键盘 command+C,然后在终端command+V。
举例:
- 单击目标文件,如Bob2,键盘同时按下command+C。
- 打开本地终端,键盘同时按下command+V,即可看到文件夹路径,即/Users/XXXX/Downloads/Bob2 (如下截图)。
- 如果您电脑是 Windows 系统:
您可右键单击文件夹,单击属性,在属性面板中找到目标文件bob所在的位置。例如D:\。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
快速进入产品控制台
- 实验手册
- 实验报告
一、开通MSE云原生网关
- 前往开通MSE云原生网关页面。
- 单击确认授权,开通MSE云原生网关。
- 在访问控制快速授权对话框中,单击确认授权,完成授权。
二、为 MSE 访问 ECI 授权
- 前往MSE访问ECI授权页面。
- 单击同意授权,完成MSE访问ECI的授权。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
快速进入产品控制台
- 登录容器服务管理控制台,在左侧导航栏选择集群。
- 在集群列表页面,单击页面右上角的创建集群。
- 在创建集群页面,单击ACK Serverless集群页签,根据如下说明完成相关配置,其他配置项保持默认值,然后单击下一步:组件配置。
配置项 |
说明 |
配置建议 |
集群名称 |
填写集群的名称。 |
knative-sd-demo |
集群规格 |
选择集群规格,支持Pro版和标准版 |
Pro版 |
地域 |
选择集群所在的地域。建议选择华北2(北京)地域。 |
华北2(北京) |
可用区 |
选择集群所在的可用区。 目前华北2(北京)支持的可用区如下: 华北 2 可用区 C 华北 2 可用区 D 华北 2 可用区 G 华北 2 可用区 E 注意:请您在以上ECI支持GPU的四个可用区进行选择。 |
华北2 可用区G |
API Server访问 |
ACK Serverless集群默认为API Server创建一个内网SLB实例,您可修改SLB实例规格。更多信息,请参见实例规格。 您可设置是否开放使用EIP暴露API Server。 |
使用EIP暴露API Server |
- 单击下一步:组件配置,选择Ingress为MSE Ingress,并选中开启 Knative。如您无需使用监控和日志服务等功能,可以取消选中使用阿里云可观测监控 Prometheus 版和使用日志服务,避免产生相关费用。其他配置项保持默认。
- 单击下一步:确认配置,确认配置信息,仔细阅读并选中相关协议,然后单击创建集群。预计等待3分钟。
额外说明:
- 若您项目状态均为「通过」,您可忽略下方内容,直接点击文档「下一页」。
- 若您之前从未开通过 ACK 产品,以及若您是第一次使用阿里云产品,可能会出现如下2项状态「未通过」提醒。您可根据如下步骤,依次操作。
5.1 【服务开通检查】状态「未通过」
若您界面显示【服务开通检查】状态「未通过」,则点击「容器服务 ACK Pro 版」,跳转到新页面。
在新页面勾选服务协议「我已阅读并同意容器服务ACK服务协议」,并点击「立即开通」。
出现如下页面,表示容器服务 ACK Pro 开通成功。
回到容器服务控制台页面,点击「重新检查」
【服务开通检查】状态显示为「通过」
5.2 【账户状态检查】状态「未通过」
点击用户中心 ,或者点击界面右上角头像,跳转到账号中心页面。
在账号中心页面查看「实名认证」情况,若您还未实名认证,点击进行认证即可。
点击页面上方的「费用」,跳转到用户中心首页
- 待集群状态为「运行中」,在集群列表页面,单击目标集群knative-sd-demo进入集群信息页面,然后在左侧导航栏,选择运维管理 > 组件管理。
- 在组件管理页面,单击存储页签,找到csi-provisioner (托管)组件,单击卡片右下方的安装。
- 单击确定完成CSI组件的安装。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
一、Knative 部署 Stable Diffusion 服务
- 在集群列表页面,单击目标集群knative-sd-demo进入集群信息页面,然后在左侧导航栏,选择应用 > Knative。
- 在Knative页面,单击服务管理页签,然后单击使用模板创建。
- 在示例模板下拉列表中,选择 Resouce - Knative Service,删除原有的全部内容,并将以下 YAML 粘贴至模板,然后单击创建。
将会创建一个名为knative-sd-demo的服务。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: alicloud-disk-efficiency
parameters:
type: cloud_efficiency
encrypted: "false"
provisioner: diskplugin.csi.alibabacloud.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sd-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 20Gi
storageClassName: alicloud-disk-efficiency
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: knative-sd-demo
annotations:
serving.knative.dev.alibabacloud/affinity: "cookie"
serving.knative.dev.alibabacloud/cookie-name: "sd"
serving.knative.dev.alibabacloud/cookie-timeout: "1800"
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/class: mpa.autoscaling.knative.dev
autoscaling.knative.dev/maxScale: '1'
autoscaling.knative.dev/scale-down-delay: '1800s'
autoscaling.knative.dev/scale-to-zero-pod-retention-period: '1800s'
autoscaling.knative.dev/targetUtilizationPercentage: "100"
k8s.aliyun.com/eci-extra-ephemeral-storage: 80Gi
k8s.aliyun.com/eci-use-specs: 'ecs.gn5-c4g1.xlarge,ecs.gn5i-c8g1.2xlarge,ecs.gn5-c8g1.2xlarge'
spec:
containerConcurrency: 5
initContainers:
- name: init-sd
image: yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/stable-diffusion:v2.0.0-gpu
command:
- sh
- -c
- "cp -n /stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors /data/"
volumeMounts:
- name: sd-data
mountPath: /data
containers:
- args:
- --listen
command:
- python3
- launch.py
image: yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/stable-diffusion:v2.0.0-gpu
imagePullPolicy: IfNotPresent
ports:
- containerPort: 7860
name: http1
protocol: TCP
name: stable-diffusion
readinessProbe:
tcpSocket:
port: 7860
initialDelaySeconds: 5
periodSeconds: 1
failureThreshold: 3
volumeMounts:
- name: sd-data
mountPath: /stable-diffusion-webui/models/Stable-diffusion
volumes:
- name: sd-data
persistentVolumeClaim:
claimName: sd-pvc
- 在服务管理页签,刷新页面后,当knative-sd-demo的状态变为成功时,表明SD服务部署成功。
二、部署 portal server 并访问 Stable Diffusion 服务
部署观测服务portal-server,用于Stable Diffusion效果展示。
- 在Knative页面,单击服务管理页签,然后单击使用模板创建。
- 在示例模板下拉列表中,选择自定义,将以下portal-server压测服务的YAML示例粘贴至模板,然后单击创建。
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: portal-server
name: portal-server
spec:
replicas: 1
selector:
matchLabels:
app: portal-server
template:
metadata:
labels:
app: portal-server
spec:
serviceAccountName: portal-server
containers:
- name: portal-server
image: registry-vpc.cn-beijing.aliyuncs.com/acs/sd-yunqi-server:v1.0.3
imagePullPolicy: IfNotPresent
env:
- name: MAX_CONCURRENT_REQUESTS
value: "5"
- name: POD_NAMESPACE
value: "default"
readinessProbe:
failureThreshold: 3
periodSeconds: 1
successThreshold: 1
tcpSocket:
port: 8080
timeoutSeconds: 1
---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: internet
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: PayByCLCU
name: portal-server
spec:
externalTrafficPolicy: Local
ports:
- name: http-80
port: 80
protocol: TCP
targetPort: 8080
- name: http-8888
port: 8888
protocol: TCP
targetPort: 8888
selector:
app: portal-server
type: LoadBalancer
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: pod-list-cluster-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["list"]
- apiGroups: ["networking.k8s.io"]
resources: ["ingresses"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: pod-list-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pod-list-cluster-role
一、如果您电脑是Windows系统
如下方法,根据您的偏好,二选一即可。
方法一:终端使用命令行方式安装和设置(此方法适合对于 Kubernetes 较为熟悉的同学)。
单击下载和安装kubectl,并安装至对应的本地客户端机器。
方法二:界面交互方式安装和设置(此方法适合对于 Kubernetes 不太熟悉的同学)。
- 下载kubectl最新补丁版 1.28至如下目录。
- 在HOME目录下,创建不带后缀名的config文件。
- 在任务栏搜索框输入cmd,进入home目录 (例如C:\Users\用户名),输入mkdir .kube创建.kube文件夹。
- 输入cd .kube进入.kube文件夹下。
- 输入type nul >config,在.kube文件夹下创建不带后缀名的config文件。
- 设置环境变量。右键单击我的电脑,选择属性,选择高级选项卡,单击环境变量。此处定义Path变量,只需要将kubectl.exe文件放在定义的这个路径下即可。
- 在cmd命令行中输入“kubectl version”,显示版本信息,表示环境变量设置成功。
- 复制如下公网访问凭据。
- 在集群列表页面,单击目标集群knative-sd-demo进入集群信息页面。
- 在集群信息页面,单击连接信息页签,选择公网访问,并复制公网访问凭证。
- 确保config文件是没有任何后缀的文件,然后将复制的访问凭据粘贴至如下已创建的config文件中。
- 在cmd命令行中输入命令“kubectl get ns“,有预期输出说明已通过kubectl成功连接集群。
二、如果您电脑是 MacOS 系统
如下方法,根据您的偏好,二选一即可。
方法一:单击在macos系统上安装和设置kubectl,根据文档操作即可(此方法适合对于 Kubernetes 较为熟悉的同学)。
方法二:详细操作指导(此方法适合对于 Kubernetes 不太熟悉的同学)。
使用本地电脑(如个人笔记本),打开终端应用,并按下方文档操作。
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
举例
打开终端应用,复制上方命令,然后粘贴到终端,并在键盘上敲回车键,执行命令
出现下方结果,代表正在下载安装 kubectl 工具
- 如果您的电脑是苹果处理器(如 M1 ),请复制下方命令,在终端应用中粘贴,并键盘敲回车执行
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
mkdir -p ~/.kube
一、查看 Pod 名称
打开本地终端,复制以下命令并黏贴,敲键盘上回车键执行命令,可查看 Pod 名称。
kubectl get pod #获取Pod名称。
举例:
下图显示两个 pod,包含 Knative-sd-demo 的就是目标 pod,复制该 pod 名称即可(下图红框部分)
二、 确认数据集路径
在本实验第一步,即「准备您家萌宠数据集」步骤中,已指导您查看您家萌宠的数据集路径,并保存路径。请您再次确认数据集路径。如果您忘记保存路径,可以基于下方步骤操作即可。
查看本地数据集路径方法如下。
- 您可直接键盘 command+C,然后在终端 command+V
举例:
- 鼠标点击目标文件,如 Bob2,键盘同时按下 command+C
2. 打开本地终端,键盘同时按下 command+V,即可看到文件夹路径,即 /Users/XXXX/Downloads/Bob2 (如下截图)
您可右键单击文件夹,选择属性,找到目标文件bob所在的位置。例如 D:\
此时,需要先进入对应的目标文件夹下,然后再执行cp命令。
三、上传数据集
在本地终端复制以下命令并黏贴。注意:${local_data_set} 需要替换成您家萌宠的数据集路径,${pod_name}需要替换为您 Stable diffusion 的 pod 名称。
#请将下方 ${local_data_set} 替换为您的萌宠数据集路径。
#请将下方 ${local_data_set} 替换为您 Stable diffusion 的 pod 名称。
kubectl cp ${local_data_set} default/${pod_name}:/data/
举例:
下图红框中,是执行的命令,注意其中「/Users/yaxinli/Downloads/Bob」是替换后的数据集路径,「knative-sd-demo-00001-deployment-b979f7b65-d7dd4」是替换后的 pod 名称。
四、确认数据集上传成功
在本地终端复制以下命令并黏贴。注意:${pod_name}需要替换为您 Stable diffusion 的 pod 名称。
# 上传完毕后,确认上传是否完成
kubectl exec -it ${pod_name} -c stable-diffusion -- ls /data/
举例:
下图红框中,是执行的命令,注意其中「knative-sd-demo-00001-deployment-b979f7b65-d7dd4」是替换后的 pod 名
一、创建您的萌宠模型
在 Stable Diffusion 模型页面,根据图示操作步骤创建模型。Name 这里建议写您宠物名字,需要为英文,若没有英文名可以输入拼音,例如 bob 或 taozi。
模型创建耗时约1分钟,创建成功后Output如下图所示。注意:如果发现超过一分钟还没有出结果,请刷新页面,再次创建。Stable Diffusion 是开源的模型,开源 WebUI 可能会出现不稳定的情况,刷新页面即可。
二、训练您家萌宠专属模型
一、使用您家萌宠专属模型生成图片
- 在 Stable Diffusion 模型页面左上方,点击刷新按钮,之后选择刚训练出的萌宠模型,如 bob/bob_380_lora_xxxx。
- 在界面上的「txt2img」对话框中输入Prompt(即关键词)。如: bob,cat,drink a cup of coffee,very detailed
注意:开源 Stable Diffusion 仅支持英文。以及 prompt 中的「bob,cat」这里请记得替换成您家宠物的名字和物种,如 beila,dog
下方列出一些 prompt 给您参考,您也可以充分发挥您的想象力来创作。
- bob,cat,wearing a golden crown
- bob,cat,diving
- bob,cat,sitting on a table,drinking coffee
- bob,cat,being an astronaut
- bob,cat,sitting on beach,enjoying sunset
二、下载生成的图片,并提交作品
保存图片,并访问【萌宠 AI 变身秀】页面,提交作品
- 选择已创建的模型。如 bob
- 在Settings页面,根据如下截图配置模型参数。
- 在Concepts页面,配置数据集路径Dataset Directory和一些文件关键字信息。注意:/data/是固定的,您输入即可,但是「Bob」需要替换成您自己的数据集名称,并且请注意大小写。如果您忘记了数据集名称,可以回到「上传您家萌宠数据集」步骤中,根据文档再次查看。
第3、4、5步,输入您宠物名字(拼音),以及宠物种类,如宠物叫 Bob,是猫,所以输入「bob,cat」。如您宠物叫贝拉,是狗,那就输入「beila,dog」。
- 配置完成后单击Train,开始训练。训练时间的长短,取决于图片数据集大小。一般来说,格式不是太大的图片,训练大约30-40分钟。
- 当Output区域,出现Training finished.Total lifetime steps表明训练已经完成。
特别提醒:
开源 Stable Diffusion 的 WebUI 可能会出现不稳定的情况,训练时页面有可能会卡住,您可以执行以下命令,通过日志查看训练进程。
替换以下 ${pod_name} 为您当前Pod的名称,您可以通过执行命令 kubectl get pod 获取当前 Pod 的名称。
kubectl logs ${pod_name} -c stable-diffusion
等待Steps为100%时,表明训练完成。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
称。
执行成功后,可以看到返回结果中,包含数据集名字,如下图红色箭头所指,包含 Bob,代表 Bob 数据集已上传成功。
P.S. 「taozi」是内置的数据集,包含了一只名叫桃子的小猫的20张照片。如果您不想要准备自己的宠物数据集,但是想要体验容器化弹性部署、模型镜像加速拉取以及 Stable Diffusion 模型训练的过程,您可以直接使用 taozi 数据集来训练。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
vi ~/.kube/config
举例
- 打开终端应用,复制上方命令,然后粘贴到终端,并在键盘上敲回车键,执行命令
- 出现以下结果,即打开空白文件
- 在集群列表页面,单击目标集群knative-sd-demo进入集群信息页面。
- 在集群信息页面,单击连接信息页签,选择公网访问,并复制公网访问凭证。
举例
如下图
举例
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
subjects: - kind: ServiceAccount name: portal-server namespace: default --- apiVersion: v1 kind: ServiceAccount metadata: name: portal-server namespace: default
- 在左侧导航栏,选择网络 > 服务。
- 在服务页面,查看portal-server服务,在外部端点列下获取访问IP。
- 点击您界面 portal server IP 123.56.XXXX 直接跳转,或在浏览器中输入http://123.56.XX.XX,然后在该页面单击Stable Diffusion跳转至Stable Diffusion访问页面。
注意:这个界面的 pod status 最开始是黄色,代表 pod 启动中,等变绿代表 pod 已起来。等 Ready :true 时,代表应用已启动。一般等待 1-2 分钟即可正常打开 Stable Diffusion 界面。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
点击充值即可。由于实验涉及到的产品为后付费,要求账户余额不低于100元。若您体验完实验后,不需要使用其他产品,您也可以随时进行提现。
回到容器服务控制台页面,点击「重新检查」
【服务状态检查】显示「通过」,然后勾选服务协议,并点击创建集群。
如果您遇到任何问题,欢迎加入答疑群联系我们,钉钉群号:13440056088
注意:当您执行下操作释放全部资源,您的萌宠专属模型,以及未下载的图片,均会丢失。
当您释放资源时,请切记仔细按照文档每一步完成全部资源释放。
一、释放容器服务ACK Serverless集群
- 在集群列表页面,找到您已创建的ACK Serverless集群,在右侧操作列,选择更多 > 删除。
- 在删除集群面板中,选中同时删除集群下的ALB资源、同时删除集群下的PrivateZone资源、我已知晓以上信息并确认删除集群,然后单击确定。
- 输入手机验证码,然后单击确定,ASK Pro集群删除完成。
二、释放MSE云原生网关
- 登录MSE管理控制台。
- 在左侧导航栏,选择云原生网关 > 网关列表。
- 在网关列表页面,切换至网关所在地域华北2(北京)
- 然后在页面右侧的操作列,单击
图标,然后单击释放实例。
- 在释放面板中,选中是否同时删除网关创建时代购的SLB实例,然后单击确定,MSE云原生网关删除完成。
三、释放NAT网关
- 登录NAT网关管理控制台。
- 在左侧导航栏,选择概览,选择 NAT 网关,点击本次实验创建的华北2(北京)实例
- 点击页面更多操作,点击删除
问题1:Pod无法创建,报错NoStock
问题现象
Warning NoStock 65s EciService [eci.containergroup]Create ECI failed because the specified instance is out of stock. It is recommended to use the multi-zone creation function to avoid the risk of stockout. More info: https://help.aliyun.com/document_detail/157290.html
解决方案:
您可以通过API查询可用库存情况。具体操作,请参见DescribeAvailableResource - 查询可用ECS实例规格。
修改ECI配置,将Pod创建到资源充足的可用区。具体操作,请参见多可用区创建Pod。
问题2:训练页面刷新后无法重新进入
出现此现象,仅前端页面无法显示,后端训练还在继续。
您可以通过执行以下命令,查看训练进度。
kubectl logs stable-diffusion-0|grep "Steps:"
等待训练进度为100%时,单击模型刷新按钮,即可查看训练完成的模型。
问题3:如需重新训练新的模型,但Pod已缩容,该如何上传数据集?
30分钟如果没有请求,Pod就会自动缩容到0。此时您可以重新登录SD服务页面,触发Pod重建,然后将数据集上传到重建后的Pod中进行训练。
问题4:如果SD页面出现如下错误怎么办?
如果您训练过程中,出现如下页面提示,可等待刷新页面后,再去查看训练进度如果是100%,说明训练已完成,可直接进行下一步生成图片的操作。
如果您遇到任何
- 在删除网关面板中,选中强制删除(删除 NAT 网关及其包含资源),然后单击确定,NAT网关删除完成。
请您再次按照文档每一步检查,确认完成全部资源释放。
基于 ACK Serverless 解锁你家萌宠的 AI 形象的更多相关文章
- Serverless助力AI计算:阿里云ACK Serverless/ECI发布GPU容器实例
ACK Serverless(Serverless Kubernetes)近期基于ECI(弹性容器实例)正式推出GPU容器实例支持,让用户以serverless的方式快速运行AI计算任务,极大降低AI ...
- Knative 实战:三步走!基于 Knative Serverless 技术实现一个短网址服务
短网址顾名思义就是使用比较短的网址代替很长的网址.维基百科上面的解释是这样的: 短网址又称网址缩短.缩短网址.URL 缩短等,指的是一种互联网上的技术与服务,此服务可以提供一个非常短小的 URL 以代 ...
- Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇
上一期我们介绍了如何基于 Knative Serverless 技术实现天气服务-上篇,首先我们先来回顾一下上篇介绍的内容: 通过高德天气 API 接口,每隔 3 个小时定时发送定时事件,将国内城市未 ...
- 基于昇腾计算语言AscendCL开发AI推理应用
摘要:本文介绍了昇腾计算语言AscendCL的基本概念,并以示例代码的形式介绍了如何基于AscendCL开发AI推理应用,最后配以实际的操作演示说明如何编译运行应用. 本文分享自华为云社区<基于 ...
- 做游戏长知识------基于行为树与状态机的游戏AI(一)
孙广东 2014.6.30 AI. 我们的第一印象可能是机器人,如今主要说在游戏中的应用. 现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完毕的.比方在RPG游戏中 ...
- Unity教程之-基于行为树与状态机的游戏AI
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比 ...
- Knative 实战:基于 Knative Serverless 技术实现天气服务-上篇
提到天气预报服务,我们第一反应是很简单的一个服务啊,目前网上有大把的天气预报 API 可以直接使用,有必要去使用 Knative 搞一套吗?杀鸡用牛刀?先不要着急,我们先看一下实际的几个场景需求: 场 ...
- Knative 实战:基于 Knative Serverless 技术实现天气服务
提到天气预报服务,我们第一反应是很简单的一个服务啊,目前网上有大把的天气预报 API 可以直接使用,有必要去使用 Knative 搞一套吗?杀鸡用牛刀?先不要着急,我们先看一下实际的几个场景需求: 场 ...
- 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)
前文回溯,之前一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),利用AI技术将文本合成语音,现在反过来,利用开源库Whisper再将语音转 ...
- [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建
这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...
随机推荐
- Android-NDK开发——基本概念
在Android开发中,有时候出于安全,性能,代码共用的考虑,需要使用C/C++编写的库.虽然在现代化工具链的支持下,这个工作的难度已经大大降低,但是毕竟万事开头难,初学者往往还是会遇到很多不可预测的 ...
- 简单了解一下国产GPU
英伟达都一万亿市值了,国产GPU现在发展的怎么样了?万字长文,有兴趣的进来简单了解一下. 最近,与GPU有关的几个科技新闻:一是英伟达NVIDIA市值超过一万亿美元,成为全球第一家市值过万亿的芯片公司 ...
- 如何通过AWS的AmazonSageMaker进行机器学习
目录 <如何通过 AWS 的 Amazon SageMaker 进行机器学习> 一.引言 随着人工智能和机器学习的发展,越来越多的企业和机构开始使用这些技术来进行各种应用场景的处理和分析. ...
- google colab使用体验
复现的TRSSL 的代码似乎是python3.8的,在本地跑电脑带不起来,即时把处理图形数改为1 但是colab用3.8不太好下载包, 因此直接上了3.9 除了一些库没有意外,遇到了一点小问题: Ca ...
- rocketmq-console基本使用
rocketmq-console基本使用 作用:rocketmq-console是rocketmq的一款可视化工具,提供了mq的使用详情等功能. 一.安装部署 下载rocketmq组件 rocketm ...
- win10安装mysql时提示错误:mysqld: Can't change dir to 'C: oftware\mysql\data\' (Errcode: 2 - No such file or directory)
win10安装解压版mysql时,提示错误: 2019-10-22 09:02:00 2004 [ERROR] Can't find messagefile 'C:\WINDOWS\system32\ ...
- Cilium系列-5-Cilium替换KubeProxy
系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, ...
- javascript中的垃圾回收机制的一些知识记录
调用栈中的数据是如何回收的 原始类型的数据会分配到栈中 引用类型的数据会被分配到堆中 在执行代码的过程中,如果遇到了一个函数,js引擎会创建该函数的执行上下文,并将该函数的上下文压入调用栈中,与此同时 ...
- PostgreSql: 安装与链接
环境介绍 使用宝塔面板,在阿里云中安装PostgreSql,并使用DataGrip在本地进行链接 postgresql 配置 安装postgresql 在宝塔中安装postgresql 管理器 在此处 ...
- 修改启动配置文件更改root密码
第二种:修改启动配置文件 (1)进入救援模式 开机选择第一个系统内核,键入e (2)修改配置文件 将光标移动linux 开始的行,添加内核参数 rd.break 按ctrl-x启动 光标放在linux ...