AIGC相关的编程题目【初级题目】1. 文本生成器 2. 图像标签生成

ops/2024/9/25 8:14:27/

1. 文本生成器

        编写一个程序,使用预先训练的语言模型(如GPT-2或GPT-3)来生成文本。用户输入一个单词或短语作为提示,程序输出一段继续该提示的文本。

python">import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer# 加载预训练的GPT-3模型和tokenizer
model = GPT2LMHeadModel.from_pretrained('gpt3')
tokenizer = GPT2Tokenizer.from_pretrained('gpt3')# 设置生成参数
max_length = 100  # 生成文本的最大长度
num_return_sequences = 1  # 生成几个候选文本
temperature = 1.0  # 控制生成文本的多样性,值越大生成的文本越随机
stop_token = '<|endoftext|>'  # 停止生成的标记# 输入提示词
prompt = input("请输入一个单词或短语作为提示:")# 对提示词进行编码
input_ids = tokenizer.encode(prompt, return_tensors='pt')# 使用模型生成文本
output = model.generate(input_ids, max_length=max_length,num_return_sequences=num_return_sequences,temperature=temperature,pad_token_id=tokenizer.eos_token_id,eos_token_id=tokenizer.encode(stop_token)[0]
)# 解码生成的文本
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)print("生成的文本:")
print(generated_text)

代码的主要步骤如下:

  1. 加载预训练的GPT-2模型和对应的tokenizer。你需要先安装transformers库。

  2. 设置一些生成文本的参数,如最大长度、生成候选数、temperature等。

  3. 提示用户输入一个单词或短语作为提示,并对其进行编码。

  4. 调用模型的generate方法,传入编码后的提示词,根据设置的参数生成文本。

  5. 对生成的文本进行解码,去掉特殊token,然后输出结果。


2. 图像标签生成

        使用一个预训练的图像识别模型(如Inception或ResNet),编写一个程序,能够接收用户上传的图片,并返回图片中可能包含的对象的标签列表。

python">import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image# 加载预训练的ResNet50模型
model = ResNet50(weights='imagenet')# 图片预处理函数
def preprocess_image(img_path):img = image.load_img(img_path, target_size=(224, 224))x = image.img_to_array(img)x = np.expand_dims(x, axis=0)x = preprocess_input(x)return x# 图片分类函数
def classify_image(img_path):preprocessed_image = preprocess_image(img_path)preds = model.predict(preprocessed_image)return decode_predictions(preds, top=3)[0]# 测试
img_path = 'test_image.jpg'  # 替换为你要分类的图片路径
predictions = classify_image(img_path)print("图片中可能包含的对象:")
for pred in predictions:print(pred[1], ":", round(pred[2]*100, 2), "%")

代码的主要步骤如下:

  1. 加载预训练的ResNet50模型,使用ImageNet数据集上训练的权重。你需要先安装tensorflow和keras库。

  2. 定义图片预处理函数preprocess_image,将图片缩放到224x224大小,转换为数组格式,并进行必要的归一化处理。

  3. 定义图片分类函数classify_image,调用预处理函数对图片进行处理,然后将处理后的图片输入到模型中进行预测。

  4. 使用decode_predictions函数对预测结果进行解码,获取图片中可能包含的对象标签及其对应的置信度。

  5. 指定要分类的图片路径,调用分类函数,打印出预测结果。


3. 简单的聊天机器人

        利用开源的聊天机器人框架(例如Rasa或Dialogflow),创建一个能够回答预设问题的简单聊天机器人。例如,用户可以询问天气、时间或简单的数学问题,机器人应该能够理解并回答。


http://www.ppmy.cn/ops/34446.html

相关文章

go语言常用的内置数据类型别名byte, rune 和any, error接口 定义和使用说明

本文描述了go语言中常用的一些类型别名和接口的定义和使用说明&#xff0c; 最为常用的就是 byte, rune, Type, any 还有 error , 详情如下&#xff1a; 8位无符号整数&#xff0c;表示范围 0--127 type uint8 uint8 byte uint8的别名&#xff0c;用来表示8位无符号整数&am…

[JUCE]从一个有关右值引用的bug,探幽移动语义

一、问题 当我尝试在\JUCE\extras\WindowsDLL\Builds\VisualStudio2022目录下编译JUCE库的时候&#xff0c;提示报错如下&#xff1a; 报错提示如下&#xff1a; 这里涉及到两个问题 一、这个std::move是干嘛用的 二、为什么这里会报错&#xff1f; 另外&#xff0c;我在实…

rabbitMQ

RabbitMQ 是一个开源的消息中间件&#xff0c;它实现了 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议&#xff0c;是一个可靠的、强大的分布式消息队列系统。 RabbitMQ 的主要特点包括&#xff1a; 可靠性&#xff1a;RabbitMQ 提供了持久化、消息确认…

商场数据库项目MySQL实战(1——44)

我们在学习了MySQL基础语句后&#xff0c;终于迎来了第一次实战项目。 此次项目包含了88张商场可能用到的数据库表单&#xff0c;以便于商场的日常运行&#xff0c;并记录商场的各项数据。 通过表单的设计和建立&#xff0c;商城项目可以有效地管理用户信息、商品信息、订单和…

Redis基本數據結構 ― Set

Redis基本數據結構 ― Set 介紹常用命令範例1. 將元素添加到集合2. 移除指定元素3. 獲取集合包含的所有元素4. 交集5. 聯集6. 差集 介紹 元素不能重複無序集合底層透過hash table實現 常用命令 命令功能SADD將元素添加到集合SREM從集合中移除元素SMOVE將元素從一個集合移動到…

Go语言的包管理工具go mod与之前的GOPATH有什么区别?

在深入探讨Go语言的包管理工具go mod与之前的GOPATH之间的区别之前&#xff0c;我们首先需要理解这两个概念各自的作用和背景。 GOPATH时代 在Go语言早期版本中&#xff0c;GOPATH是一个非常重要的环境变量。它告诉Go工具链在哪里查找你的Go代码、第三方库以及编译后的二进制…

git 配置相关

问题一&#xff1a;ssh-keygen -t ed25519 -C "Gitee SSH Key" 这个命令中的 ed25519 字符是什么意思&#xff1f; ssh-keygen 是一个用于生成SSH密钥的工具&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于加密方式远程登录和其…

C++——list的特性及使用

list的特性 STL中的list是指带头双向循环列表&#xff0c;list每个元素的存储相互独立&#xff0c;因为其节点存储位置独立不连续&#xff0c;其插入和删除不需要挪动其他元素效率比起vector更高。但也因为存储空间不连续的问题&#xff0c;不能做到和vector一样的随机…