当前位置: 首页 > news >正文

python打卡第36天

  1. 进度条功能:手动和自动写法,让打印结果更加美观
import time
from tqdm import tqdm, trangedef progress_bar_demo(total_iterations=100):"""展示手动和自动进度条实现"""print("\n=== 手动进度条实现 ===")# 手动实现进度条def manual_progress_bar(iterations):start_time = time.time()for i in range(iterations):# 模拟处理任务time.sleep(0.02)# 计算进度百分比percent = (i + 1) / iterations * 100# 创建进度条可视化bar_length = 40filled_length = int(bar_length * (i + 1) // iterations)bar = '█' * filled_length + '-' * (bar_length - filled_length)# 计算耗时elapsed_time = time.time() - start_time# 打印进度信息print(f'\r进度: |{bar}| {percent:.1f}% 耗时: {elapsed_time:.2f}s', end='')print("\n任务完成!")manual_progress_bar(total_iterations)print("\n=== 自动进度条实现 (使用tqdm) ===")# 使用tqdm自动进度条def auto_progress_bar(iterations):# 使用tqdm创建进度条for _ in tqdm(range(iterations), desc="处理进度", ncols=80, bar_format="{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}]"):# 模拟处理任务time.sleep(0.02)auto_progress_bar(total_iterations)print("\n=== 数据处理进度条示例 ===")# 实际数据处理场景示例data = [f"样本_{i}" for i in range(50)]# 使用tqdm包装数据迭代器processed_data = []for item in tqdm(data, desc="处理数据"):# 模拟数据处理time.sleep(0.1)processed_data.append(item.upper())print(f"\n处理完成! 共处理 {len(processed_data)} 条数据")# 运行进度条演示
progress_bar_demo()
  1. 推理的写法:评估模式
  2. import torch
    from torch.utils.data import DataLoader, TensorDataset
    import numpy as npdef inference_demo():"""展示推理评估模式的标准写法"""# 1. 创建模拟数据print("\n=== 创建测试数据 ===")num_samples = 1000input_size = 10X_test = torch.randn(num_samples, input_size)y_test = torch.randint(0, 2, (num_samples,))test_dataset = TensorDataset(X_test, y_test)test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)print(f"测试集: {len(test_loader.dataset)} 个样本, {len(test_loader)} 个批次")# 2. 创建简单模型class SimpleModel(torch.nn.Module):def __init__(self, input_size):super().__init__()self.fc1 = torch.nn.Linear(input_size, 20)self.fc2 = torch.nn.Linear(20, 2)def forward(self, x):x = torch.relu(self.fc1(x))x = self.fc2(x)return xmodel = SimpleModel(input_size)# 3. 推理函数def run_inference(model, data_loader):# 确保模型在评估模式model.eval()# 禁用梯度计算with torch.no_grad():all_preds = []all_labels = []# 使用tqdm添加进度条for inputs, labels in tqdm(data_loader, desc="推理进度", total=len(data_loader),ncols=80):# 前向传播outputs = model(inputs)# 获取预测结果_, preds = torch.max(outputs, 1)# 收集结果all_preds.extend(preds.cpu().numpy())all_labels.extend(labels.cpu().numpy())return np.array(all_preds), np.array(all_labels)# 4. 运行推理print("\n=== 开始推理 ===")predictions, true_labels = run_inference(model, test_loader)# 5. 计算评估指标accuracy = (predictions == true_labels).mean()print(f"\n推理完成! 准确率: {accuracy:.4f}")# 6. 推理后注意事项print("\n注意: 推理完成后,如果需要继续训练,请调用 model.train() 切换回训练模式")# 运行推理演示
    inference_demo()

    @浙大疏锦行

相关文章:

  • Linux线程池(上)(33)
  • 驱动开发学习20250529
  • 前端开发中 <> 符号解析问题全解:React、Vue 与 UniApp 场景分析与解决方案
  • 前端的面试笔记——Vue2/3(一)Vue2和Vue3的区别和优缺点
  • ai如何绘制mg人物眉毛
  • 爬虫到智能数据分析:Bright Data × Kimi 智能洞察亚马逊电商产品销售潜力
  • C++ —(详述c++特性)
  • 3.1.1栈的基本概念
  • 基于Session与基于Redis与Token验证码登录校验
  • 安全帽检测算法AI智能分析网关V4守护工地/矿山/工厂等多场景作业安全
  • Python训练营打卡Day39
  • Ubuntu 安装 Miniconda 及配置国内镜像源完整指南
  • 进程间通信(共享内存)
  • TRS收益互换平台开发实践:从需求分析到系统实现
  • 生产者 - 消费者问题(通俗
  • Maven 仓库类型与镜像策略
  • VueScan Pro v9.8.45.08 一款图像扫描软件,中文绿色便携版
  • 网络安全实训平台的设计与建设方案
  • 46. Permutations和47. Permutations II
  • 【高频面试题】数组中的第K个最大元素(堆、快排进阶)
  • 网站开发知识/网上打广告有哪些软件
  • 苏宁易购网站建设目标/磁力搜索引擎不死鸟
  • wordpress查看数据库文件/夫唯老师seo
  • 苏州网站建设价格/上海发布微信公众号
  • 如何开网站做代销/世界十大网站排名出炉
  • 网站建设与维护试卷第九章/如何做网站推广