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

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)

代码的主要步骤如下:

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

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

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

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

  5. 对生成的文本进行解码,去掉特殊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), "%")

代码的主要步骤如下:

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

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

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

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

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


3. 简单的聊天机器人

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

详见:AIGC相关的编程题目【初级题目】3. 简单的聊天机器人-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程日记✧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值