[青少年CTF擂台挑战赛 2024 #Round] Misc 1ez_model

news/2024/10/21 7:37:38/

[青少年CTF擂台挑战赛 2024 #Round] Misc 1ez_model

题目描述:从Pytorch开始的AI之路

下载附件,是一个pth文件

image-20240304144324322

.pth 文件通常是 PyTorch 模型的权重文件,它包含了模型的参数。要还原(或加载)一个大模型,你需要进行以下几个步骤:

  1. 安装 PyTorch:确保你的环境中安装了 PyTorch。可以通过运行 pip install torch 来安装。

  2. 定义模型结构:在加载 .pth 文件之前,你需要定义与训练时相同的模型结构。这意味着你需要知道模型的架构,并在代码中定义它。

  3. 加载权重:一旦定义了模型结构,你可以使用 torch.load() 方法加载 .pth 文件中的权重,并使用 load_state_dict() 方法将权重应用到你定义的模型结构上。

示例代码:

import torch
import torch.nn as nn# 假设我们有一个简单的模型
class SimpleModel(nn.Module):def __init__(self):super(SimpleModel, self).__init__()self.conv1 = nn.Conv2d(1, 20, 5)self.pool = nn.MaxPool2d(2, 2)self.conv2 = nn.Conv2d(20, 50, 5)self.fc1 = nn.Linear(50 * 4 * 4, 500)self.fc2 = nn.Linear(500, 10)def forward(self, x):x = self.pool(F.relu(self.conv1(x)))x = self.pool(F.relu(self.conv2(x)))x = x.view(-1, 50 * 4 * 4)x = F.relu(self.fc1(x))x = self.fc2(x)return x# 创建模型实例
model = SimpleModel()# 加载预训练的权重
model.load_state_dict(torch.load('path_to_your_model.pth'))# 将模型设置为评估模式
model.eval()

这个例子展示了一个非常简单的模型结构。实际使用时,你需要根据你的 .pth 文件对应的模型架构来定义模型。

请注意,如果 .pth 文件是使用 torch.save() 保存的整个模型(而不仅仅是模型的 state_dict),则可以直接使用 torch.load() 来加载整个模型,无需先定义模型结构。但是,推荐的做法是仅保存和加载模型的 state_dict,因为这种方式更加灵活且与模型代码解耦。

开始做题,我们学彭总的做法,首先看键值

import torch
import torchvision.models as models#loaded_data = torch.load('easy.pth', torch.device('cpu'))    #设置在cpu环境下查询
loaded_data = torch.load('easy.pth')
print(loaded_data.keys())

键中有flag,想办法拿出来。

image-20240304151955751

import torch
import torchvision.models as models#loaded_data = torch.load('easy.pth', torch.device('cpu'))    #设置在cpu环境下查询
loaded_data = torch.load('easy.pth')
hint_value = loaded_data['hint']
print(hint_value)
flag_value = loaded_data['flag']
print(flag_value)

image-20240304152036673

应该是ASCII,直接gpt解码。

第一个tensor解码结果:ZzYyXxAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWw0123456789+/

第二个tensor解码结果:LidUJ3fQM2FVJoxpDwLvDyF3DwpPdwxOEgbQJoxnEgdnJgnojoZ5mF

应该是边表base64,第二个是加密字符串,第一个是表。

image-20240304152329327


http://www.ppmy.cn/news/1372556.html

相关文章

关于制作Python游戏全过程(汇总1)

目录 前言: 1.plane_sprites模块: 1.1导入模块: 1.1.1pygame:一个用于创建游戏的Python库。 1.1.2random:Python标准库中的一个模块,用于生成随机数。 1.2定义事件代号: 1.2.1ENEMY_EVENT:自定义的敌机出场事件代号&#xf…

使用lnmp环境部署laravel框架需要注意的点

1,上传项目文件后,需要chmod -R 777 storage授予文件权限,不然会报错file_put_contents(/): failed to open stream: Permission denied。 如果后面还是报错没有权限的话,就执行ps -ef |grep php查询php运行用户。然后执行chown …

[HackMyVM] 靶场 Wave

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

【JavaEE】_Spring MVC项目使用数组与集合传参

目录 1. 使用数组传参 1.2 传递单个参数 1.3 传递多个名称相同的参数 1.3.1 关于urlencode 2. 使用集合传参 1. 使用数组传参 创建一个Spring MVC项目,其中 .java文件内容如下: package com.example.demo.controller;import com.example.demo.Per…

CatBoost中级教程:超参数调优与模型选择

导言 在机器学习中,选择合适的模型和调优合适的超参数是提高模型性能的关键步骤。CatBoost作为一种强大的梯度提升算法,具有许多可调节的超参数,通过合理选择和调优这些超参数可以提高模型的性能。本教程将详细介绍如何在Python中使用CatBoo…

《手把手教你》系列技巧篇(二十)-java+ selenium自动化测试-元素定位大法之终卷(详细教程)

1.简介 这篇文章主要是对前边的文章中的一些总结和拓展。本来是不打算写着一篇的,但是由于前后文章定位元素的时间有点长,怕大家忘记了,就在这里简单做一个总结和拓展。 2.Selenium八种定位方式 Selenium官方网站在使用教程中说到&#xf…

第十篇:如何利用人工智能技术做好营销流量整形管理?(Traffic Shaping)- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市​​​​​​​。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先…

HTTPS如何保证数据传输的安全性 以及CA签发证书验签

暴力输出: 越看会越深入,睡前难以想通,后深入研究。得之。 有问题 请留言。 ----------追求内心的富足与平和。日行一善。 亓苏姑娘