1. 文本生成器
编写一个程序,使用预先训练的语言模型(如GPT-2或GPT-3)来生成文本。用户输入一个单词或短语作为提示,程序输出一段继续该提示的文本。
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)
代码的主要步骤如下:
-
加载预训练的GPT-2模型和对应的tokenizer。你需要先安装transformers库。
-
设置一些生成文本的参数,如最大长度、生成候选数、temperature等。
-
提示用户输入一个单词或短语作为提示,并对其进行编码。
-
调用模型的generate方法,传入编码后的提示词,根据设置的参数生成文本。
-
对生成的文本进行解码,去掉特殊token,然后输出结果。
2. 图像标签生成
使用一个预训练的图像识别模型(如Inception或ResNet),编写一个程序,能够接收用户上传的图片,并返回图片中可能包含的对象的标签列表。
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), "%")
代码的主要步骤如下:
-
加载预训练的ResNet50模型,使用ImageNet数据集上训练的权重。你需要先安装tensorflow和keras库。
-
定义图片预处理函数preprocess_image,将图片缩放到224x224大小,转换为数组格式,并进行必要的归一化处理。
-
定义图片分类函数classify_image,调用预处理函数对图片进行处理,然后将处理后的图片输入到模型中进行预测。
-
使用decode_predictions函数对预测结果进行解码,获取图片中可能包含的对象标签及其对应的置信度。
-
指定要分类的图片路径,调用分类函数,打印出预测结果。
3. 简单的聊天机器人
利用开源的聊天机器人框架(例如Rasa或Dialogflow),创建一个能够回答预设问题的简单聊天机器人。例如,用户可以询问天气、时间或简单的数学问题,机器人应该能够理解并回答。
详见:AIGC相关的编程题目【初级题目】3. 简单的聊天机器人-CSDN博客