第20讲 图片载入示例

第20讲  图片载入示例
 


本次视频展示了使用ActionScript 3.0进行图片数据载入。ActionScript 3.0可以使用多种方式载入外部图片。ActionScript 3.0比较常用Loader对象直接载入,而本次案例则使用URLLoader以二进制数据流的方式载入。

 

                          观看视频 

 

如果大家在优酷网上看的不清楚,观看高清请       点击这里       去下载.

 

1——31讲高清版本总下载地址http://www.damipan.com/file/1mV12Z2.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用PyTorch实现的对话生成模型的代码示例: ```python import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset, DataLoader # 定义对话数据集 class ConversationDataset(Dataset): def __init__(self, conversations): self.conversations = conversations def __len__(self): return len(self.conversations) def __getitem__(self, idx): return self.conversations[idx] # 定义对话生成模型 class ConversationModel(nn.Module): def __init__(self, vocab_size, embedding_dim, hidden_dim): super(ConversationModel, self).__init__() self.embedding = nn.Embedding(vocab_size, embedding_dim) self.lstm = nn.LSTM(embedding_dim, hidden_dim, batch_first=True) self.linear = nn.Linear(hidden_dim, vocab_size) def forward(self, input_seq): embedded = self.embedding(input_seq) output, _ = self.lstm(embedded) logits = self.linear(output) return logits # 训练对话生成模型 def train(model, train_loader, optimizer, criterion, device): model.train() running_loss = 0.0 for batch in train_loader: batch = batch.to(device) optimizer.zero_grad() logits = model(batch[:, :-1]) targets = batch[:, 1:].contiguous().view(-1) loss = criterion(logits.view(-1, logits.size(-1)), targets) loss.backward() optimizer.step() running_loss += loss.item() return running_loss / len(train_loader) # 生成对话 def generate(model, tokenizer, device, max_length=20): model.eval() input_seq = torch.tensor([tokenizer["<sos>"]]).unsqueeze(0).to(device) generated = [] with torch.no_grad(): for i in range(max_length): logits = model(input_seq) _, top1 = torch.topk(logits[:, -1, :], 1) generated.append(top1.item()) if top1 == tokenizer["<eos>"]: break input_seq = torch.cat([input_seq, top1.unsqueeze(0)], dim=1) return generated # 主函数 def main(): # 载入数据集 conversations = [ ["Hello", "Hi there", "How are you?"], ["I'm good, thanks", "What about you?", "I'm doing well"], ["That's great to hear", "Bye", "Goodbye"] ] tokenizer = {"<pad>": 0, "<sos>": 1, "<eos>": 2, "<unk>": 3, "Hello": 4, "Hi there": 5, "How are you?": 6, "I'm good, thanks": 7, "What about you?": 8, "I'm doing well": 9, "That's great to hear": 10, "Bye": 11, "Goodbye": 12} dataset = ConversationDataset([[tokenizer[w] for w in conv] for conv in conversations]) train_loader = DataLoader(dataset, batch_size=1, shuffle=True) # 定义模型 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = ConversationModel(len(tokenizer), 16, 32).to(device) optimizer = optim.Adam(model.parameters(), lr=0.01) criterion = nn.CrossEntropyLoss(ignore_index=tokenizer["<pad>"]) # 训练模型 for epoch in range(10): loss = train(model, train_loader, optimizer, criterion, device) print("Epoch {}: loss = {:.4f}".format(epoch+1, loss)) # 生成对话 generated = generate(model, tokenizer, device) generated_words = [list(tokenizer.keys())[list(tokenizer.values()).index(idx)] for idx in generated] print("Generated conversation: ", " ".join(generated_words)) if __name__ == "__main__": main() ``` 该代码使用了一个包含了3段简单对话的数据集,每个对话都是一个字符串列表。首先将每个字符串转换为相应的标记(token),然后使用PyTorch的`Dataset`和`DataLoader`类来准备数据集。 接下来定义了一个简单的LSTM模型,用于生成对话。模型的输入是一个标记序列,输出是一个包含了每个标记的概率分布的张量。在训练过程中使用交叉熵损失函数来计算模型的误差,并使用Adam优化器更新模型参数。 在训练过程中,每个批次都是一个长度不同的对话序列,因此需要使用PyTorch的`pack_padded_sequence`函数来将它们打包成一个张量,以便能够使用LSTM模型。在测试过程中,使用前向传播来生成对话。从一个特殊的标记`<sos>`开始,然后在每个时间步上,将模型的输出与一个softmax函数相结合,得到下一个标记的概率分布,然后选择概率最高的标记作为输出。这个过程一直持续到生成了一个特殊的标记`<eos>`为止,或达到了最大长度。 最后,使用生成的标记序列来还原对话中的字符串,并输出它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值