Amazon SageMaker + Stable Diffusion 搭建文本生成图像模型
如果我们的计算机视觉系统要真正理解视觉世界,它们不仅必须能够识别图像,而且必须能够生成图像。文本到图像的 AI 模型仅根据简单的文字输入就可以生成图像。

近两年,以ChatGPT为代表的AIGC技术崭露头角,逐渐从学术研究的象牙塔迈向工业应用的广阔天地。随着下游行业对快速处理柔性商业业务的需求日益增长,如何提供一个便捷、高效且完整的企业级人工智能解决方案成为了业界亟待解决的问题。幸运的是,亚马逊云服务推出了Amazon SageMaker平台,为企业提供了一站式的人工智能解决方案,满足了市场的迫切需求。
本篇文章将采用Amazon SageMaker+Stable Diffusion实现文本生成图像Demo!
一、Amazon SageMaker简介
Amazon SageMaker是一款亚马逊云服务旗下的全面托管机器学习平台。该平台集成了众多高效工具和服务,使得构建、训练和部署机器学习模型变得前所未有的简单。Amazon SageMaker拥有灵活的计算资源及配置选项,无论项目规模大小,它都能以强大的计算能力,助力训练大型模型。此外,它还提供了强大的管理和监控功能,确保机器学习工作流程的顺畅运行。

Amazon SageMaker机器学习平台提供了一系列能够快速构建、训练和部署机器学习模型的工具和服务,使机器学习工作流程更加高效、易用和可扩展。现在进入
亚马逊云科技: https://mic.anruicloud.com/url/1037
可以免费试用!
二、Amazon SageMaker + Stable Diffusion实践
2.1、创建Amazon SageMaker实例
首先打开亚马逊云控制台,在查找服务处搜索关键词SageMaker,进入Amazon SageMaker环境:
随后,在界面左侧定位至“笔记本”选项并点击。接着,依次选择“笔记本实例”和“创建笔记本实例”,进入配置页面。在此页面中,需注意选择适合的“笔记本实例类型”申请资源的类型,这里建议选择加速型g4dn.xlarge实例,确保高效的计算性能。
在操作系统方面,推荐选择Amazon Linux 2,并搭配Jupyter Lab 3这一交互式编程环境。“卷大小”可根据个人需求进行选择,建议至少设置为20GB,最后点击确定。
2.2、简单测试(可选)
创建实例成功后,可以新建一个初始notebook,复制并粘贴以下代码片段到笔记本的单元格,安装所需依赖
pip install --upgrade -q aiobotocorepip install -q xgboost==1.3.1
然后复制并粘贴以下代码片段,点击run运行:
import pandas as pd
import boto3
import sagemaker
import json
import joblib
import xgboost as xgb
from sklearn.metrics import roc_auc_score# Set SageMaker and S3 client variables
sess = sagemaker.Session()region = sess.boto_region_name
s3_client = boto3.client("s3", region_name=region)sagemaker_role = sagemaker.get_execution_role()# Set read and write S3 buckets and locations
write_bucket = sess.default_bucket()
write_prefix = "fraud-detect-demo"read_bucket = "sagemaker-sample-files"
read_prefix = "datasets/tabular/synthetic_automobile_claims" train_data_key = f"{read_prefix}/train.csv"
test_data_key = f"{read_prefix}/test.csv"
model_key = f"{write_prefix}/model"
output_key = f"{write_prefix}/output"train_data_uri = f"s3://{read_bucket}/{train_data_key}"
test_data_uri = f"s3://{read_bucket}/{test_data_key}"
hyperparams = {"max_depth": 3,"eta": 0.2,"objective": "binary:logistic","subsample" : 0.8,"colsample_bytree" : 0.8,"min_child_weight" : 3}num_boost_round = 100
nfold = 3
early_stopping_rounds = 10# Set up data input
label_col = "fraud"
data = pd.read_csv(train_data_uri)# Read training data and target
train_features = data.drop(label_col, axis=1)
train_label = pd.DataFrame(data[label_col])
dtrain = xgb.DMatrix(train_features, label=train_label)# Cross-validate on training data
cv_results = xgb.cv(params=hyperparams,dtrain=dtrain,num_boost_round=num_boost_round,nfold=nfold,early_stopping_rounds=early_stopping_rounds,metrics=["auc"],seed=10,
)metrics_data = {"binary_classification_metrics": {"validation:auc": {"value": cv_results.iloc[-1]["test-auc-mean"],"standard_deviation": cv_results.iloc[-1]["test-auc-std"]},"train:auc": {"value": cv_results.iloc[-1]["train-auc-mean"],"standard_deviation": cv_results.iloc[-1]["train-auc-std"]},}
}print(f"Cross-validated train-auc:{cv_results.iloc[-1]['train-auc-mean']:.2f}")
print(f"Cross-validated validation-auc:{cv_results.iloc[-1]['test-auc-mean']:.2f}")
这段代码的主要作用是在Amazon S3存储桶中的的汽车保险索赔数据集上,训练一个 XGBoost 二进制分类模型,并评估模型的性能并使用交叉验证来评估其性能,运行单元格后会显示交叉验证训练和验证 AUC 分数。
2.3、Stable Diffusion实践
上一步运行没问题后,我们重新打开Jupyter页面,进入对应实例,选择右侧upload,上传Notebook代码,代码下载链接:
https://static.us-east-1.prod.workshops.aws/public/648e1f0c-f5e0-40eb-87b1-7f3638dba539/static/code/notebook-stable-diffusion.ipynb
上传到笔记本实例当中,上传成功后,点击打开,选择conda_pytorch_p39核,并点击set kernel
这个Diffusion Model的Amazon SageMaker Jupyter文件已经为我们写好了所有配置步骤,环境安装,我们直接点击Run:
该代码在笔记本实例中下载并测试Stable Diffusion模型文件,然后编写模型推理入口,打包模型文件,并上传至S3桶,最后使用代码部署模型至Amazon SageMaker Inference Endpoint。
在juypter notebook的最后,加上这样一段代码,然后将想要生成的句子可以写在prompt里面,就可以实现完整的文本生成图像功能:
from PIL import Image
from io import BytesIO
import base64# helper decoderdef decode_base64_image(image_string):base64_image = base64.b64decode(image_string)buffer = BytesIO(base64_image)return Image.open(buffer)#run prediction
response = predictor[SD_MODEL].predict(data={"prompt": ["A cute panda is sitting on the sofa","a siamese cat wearing glasses, working hard at the computer",],"height" : 512,"width" : 512,"num_images_per_prompt":1}
)#decode images
decoded_images = [decode_base64_image(image) for image in response["generated_images"]]#visualize generationfor image in decoded_images:display(image)
如上,我们试着生成一张可爱的熊猫坐在沙发上面,等待几秒钟后,推理完成,得到如下结果:
三、Amazon SageMaker 的功能特性
Amazon SageMaker以其强大的功能特性和灵活的配置选项,为数据科学家、业务分析师以及广大开发者提供了全面、高效的机器学习解决方案。
首先,Amazon SageMaker能够让不同背景的用户都能够轻松利用机器学习进行创新。对于数据科学家而言,其提供了功能强大的集成开发环境(IDE),使得他们能够轻松构建、训练和部署复杂的机器学习模型。而对于业务分析师,其提供了无代码界面,即便没有深厚的编程背景,也能通过简单的操作实现机器学习的应用。
其次,Amazon SageMaker 支持如 TensorFlow、PyTorch 和 Apache MXNet多种主流的机器学习框架、支持如scikit-learn、XGBoost等各种机器学习工具包、支持Python、R 等多种编程语言,使得用户能够充分利用现有的技术资源和经验,在机器学习领域实现更快速、更高效的创新。无论是数据科学家、机器学习工程师还是开发者,都能从 Amazon SageMaker 中受益,推动机器学习技术的不断发展和应用。
最后,Amazon SageMaker拥有完全托管、可扩展的基础设施。用户无需担心底层硬件的维护和扩展问题,只需专注于模型的开发和优化。Amazon SageMaker通过高性能、经济实惠的基础设施支持,帮助用户轻松构建自己的机器学习模型和生成式人工智能应用程序的开发。
现在进入亚马逊云科技: https://mic.anruicloud.com/url/1037
可以获取Studio 笔记本上每月 250 个小时的 ml.t3.medium,或者按需笔记本实例上每月 250 个小时的 ml.t2 medium 或 ml.t3.medium,每月 50 个小时的 m4.xlarge 或150小时 的m5.xlarge 实例试用。除此之外,更有云服务器(Amazon EC2),云存储(Amazon S3),负载均衡(Elastic Load Balancing),虚拟服务器VPS(Amazon Lightsail)、视频会议(Amazon Chime )等等100 余种云产品或服务免费试用。
相关文章:
Amazon SageMaker + Stable Diffusion 搭建文本生成图像模型
如果我们的计算机视觉系统要真正理解视觉世界,它们不仅必须能够识别图像,而且必须能够生成图像。文本到图像的 AI 模型仅根据简单的文字输入就可以生成图像。 近两年,以ChatGPT为代表的AIGC技术崭露头角,逐渐从学术研究的象牙塔迈…...
FPGA数字信号处理前沿
生活在这个色彩斑斓的世界里,大家的身边存在太多模拟信号比如光能、电压、电流、压力、声音、流速等。数字信号处理作为嵌入式研发的一个经久不衰热门话题,可以说大到军工武器、航空航天,小到日常仪器、工业控制,嵌入式SOC芯片数字…...
【Android】系统启动流程分析 —— init 进程启动过程
本文基于 Android 14.0.0_r2 的系统启动流程分析。 一、概述 init 进程属于一个守护进程,准确的说,它是 Linux 系统中用户控制的第一个进程,它的进程号为 1,它的生命周期贯穿整个 Linux 内核运行的始终。Android 中所有其它的进程…...
抖音视频批量下载软件可导出视频分享链接|手机网页视频提取|视频爬虫采集工具
解锁抖音视频无水印批量下载新姿势! 在快节奏的生活中,抖音作为时下最热门的短视频平台之一,吸引着广大用户的目光。而如何高效地获取喜欢的视频内容成为了许多人关注的焦点。Q:290615413现在,我们推出的抖音视频批量下载软件&…...
鸿蒙Harmony应用开发—ArkTS-@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二…...
深度解析:Elasticsearch写入请求处理流程
版本 Elasticsearch 8.x 原文链接:https://mp.weixin.qq.com/s/hZ_ZOLFUoRuWyqp47hqCgQ 今天来看下 Elasticsearch 中的写入流程。 不想看过程可以直接跳转文章末尾查看总结部分。最后附上个人理解的一个图。 从我们发出写入请求,到 Elasticsearch 接收请…...
数据结构:堆和二叉树遍历
堆的特征 1.堆是一个完全二叉树 2.堆分为大堆和小堆。大堆:左右节点都小于根节点 小堆:左右节点都大于根节点 堆的应用:堆排序,topk问题 堆排序 堆排序的思路: 1.升序排序,建小堆。堆顶就是这个堆最小…...
[Halcon学习笔记]在Qt上实现Halcon窗口的字体设置颜色设置等功能
1、 Halcon字体大小设置在Qt上的实现 在之前介绍过Halcon窗口显示文字字体的尺寸和样式,具体详细介绍可回看 (一)Halcon窗口界面上显示文字的字体尺寸、样式修改 当时介绍的设定方法 //Win下QString Font_win "-Arial-10-*-1-*-*-1-&q…...
ArcGis 地图文档
ArcGis官网 https://developers.arcgis.com/labs/android/create-a-starter-app/ Arcgis for android 加载谷歌、高德和天地图 https://blog.csdn.net/qq_19688207/article/details/108125778 AeroMap图层地址: API_KEY: 7e95eae2-a18d-34ce-beaa-894d6a08c5a5 街道图…...
【C语言】动态内存分配
1、为什么要有动态内存分配 不管是C还是C中都会大量的使用,使用C/C实现数据结构的时候,也会使用动态内存管理。 我们已经掌握的内存开辟方式有: int val 20; //在栈空间上开辟四个字节 char arr[10] { 0 }; //在栈空间…...
算法思想总结:位运算
创作不易,感谢三连支持!! 一、常见的位运算总结 标题 二、位1的个数 . - 力扣(LeetCode) 利用第七条特性:n&(n-1)干掉最后一个1,然后每次都用count去统计ÿ…...
四、HarmonyOS应用开发-ArkTS开发语言介绍
目录 1、TypeScript快速入门 1.1、编程语言介绍 1.2、基础类型 1.3、条件语句 1.4、函数 1.5、类 1.6、模块 1.7、迭代器 2、ArkTs 基础(浅析ArkTS的起源和演进) 2.1、引言 2.2、JS 2.3、TS 2.4、ArkTS 2.5、下一步演进 3、ArkTs 开发实践…...
3 Spring之DI详解
5,DI相关内容 前面我们已经完成了bean相关操作的讲解,接下来就进入第二个大的模块DI依赖注入,首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法)构造方法 依赖注入描述了在容器中建…...
Web框架开发-Ajax
一、 Ajax准备知识:json 1、json(Javascript Obiect Notation,JS对象标记)是一种轻量级的数据交换格式 1 2 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。…...
Python爬虫之urllib库
1、urllib库的介绍 可以实现HTTP请求,我们要做的就是指定请求的URL、请求头、请求体等信息 urllib库包含如下四个模块 request:基本的HTTP请求模块,可以模拟请求的发送。error:异常处理模块。parse:工具模块&#x…...
Docker学习笔记 - 常用命令
目录 基本概念常用命令使用docker compose启动脚本创建自己的image Docker命令文档 1. 下载一个image 从hub.docker.com下载一个image。 docker pull [image name]下载时指定image的tag。 docker pull [image name]:<tag>举例,下载postgre的tag为alpine…...
数学建模(Topsis python代码 案例)
目录 介绍: 模板: 案例: 极小型指标转化为极大型(正向化): 中间型指标转为极大型(正向化): 区间型指标转为极大型(正向化): 标准化处理: 公式: Topsis(优劣解距离法): 公式: 完整代码: 结果: 介绍: 在数学建模中,Topsis方法是一种多准则决策分…...
gateway网关指定路由响应超时时间
gateway网关指定路由响应超时时间 spring:cloud:gateway:httpclient:responseTimeout: 10000这个配置用于设置HttpClient的响应超时时间,单位是毫秒。具体来说,这个配置表示当Gateway向后端服务发出请求后,如果在10秒内没有收到后端服务的响…...
docker 和K8S知识分享
docker知识: 比如写了个项目,并且在本地调试没有任务问题,这时候你想在另外一台电脑或者服务器运行,那么你需要在另外一台电脑或者服务器配置相同的软件,比如数据库,web服务器,必要的插件和库等…...
MySQL--select count(*)、count(1)、count(列名) 的区别你知道吗?
MySQL select count(*)、count(1)、count(列名) 的区别? 这里我们先给出正确结论: count(*),包含了所有的列,会计算所有的行数,在统计结果时候,不会忽略列值为空的情况。count(1),忽略所有的列…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
