• kaggle_competition1_CIFAR10_Reg


    一、查漏补缺、熟能生巧:
    1.关于shutil.copy或者这个copyfile的作用和用法:

    将对应的文件复制到对应的文件目录下

    2.关于python中dict的键值对的获取方式:
    1. #终于明白了,原来python中的键_值 对的用法就是通过调用dict.keys()和dict.values()实现的
    2. #print(labels.keys())
    3. #print(labels.values())
     3.关于python中set创建1个集合的函数用法:

    二、代码解读:
    1.引入必要的库:
    1. !pip install d2l
    2. import collections
    3. import math
    4. import os
    5. import shutil
    6. import pandas as pd
    7. import torch
    8. import torchvision
    9. from torch import nn
    10. from d2l import torch as d2l
     2.将trainLabel.csv文件中的"1,truck"这种每一行的数据存储到1个dict字典数组labels中,这个字典就是键keys是序号1-n,值values就是10个类别的str像“truck,dog”这种
    1. #这个部分是 从csv文件中读取到 所有 labels标签的信息:
    2. data_dir = '/kaggle/input/cifar-10/' #基本的文件路径值
    3. def read_csv_labels(fname):
    4. """读取fname来给标签字典返回一个文件名"""
    5. with open(fname, 'r') as f: #将这个filename文件打开作为对象f
    6. # 跳过文件头行(列名)
    7. lines = f.readlines()[1:]#lines是一个数组,每个元素是str类型“id ,label”
    8. tokens = [l.rstrip().split(',') for l in lines] #tokens是1个数组,将原来的line按照“,”分为id 和 label
    9. return dict(((name, label) for name, label in tokens)) #返回1个dict字典的数组,由
    10. labels = read_csv_labels(os.path.join(data_dir, 'trainLabels.csv'))
    11. #测试:(name , label)到底都是什么东西,
    12. #print(labels[0][0],' ',labels[0][1])
    13. print('# 训练样本 :', len(labels))
    14. print('# 类别 :', len(set(labels.values())))
    15. print(type(labels))

    3.对这个竞赛notebool本身提供的数据.zip进行解压到'/kaggle/working/'这个目录下面:
    1. !pip install py7zr
    2. import py7zr
    3. # 将文件从输入目录复制到当前工作目录下(如果需要)
    4. #!cp /kaggle/input/cifar-10/
    5. # 解压缩 .7z 文件
    6. with py7zr.SevenZipFile('/kaggle/input/cifar-10/train.7z', mode='r') as z:
    7. z.extractall()
    8. with py7zr.SevenZipFile('/kaggle/input/cifar-10/test.7z', mode='r') as z:
    9. z.extractall()
    4.关于python中collections库中的Counter函数的用法:

    ......剩下的代码解读已经在kaggle上面注释好了,以后复盘的时候再搬过来好了。。。

  • 相关阅读:
    Deno入门:Node.js的现代替代品
    JavaScript数据类型
    BUG解决Button类不能从UnityEngine.UI中引用
    GDB/MI断点信息
    智能疾病查询接口
    掌握Docker:让你的应用轻松部署和管理
    java计算机毕业设计会员商城管理系统MyBatis+系统+LW文档+源码+调试部署
    springboot logback配置文件详解
    域名个人信息备案的能用 websocket 吗
    【单元测试与JUnit 4】传统main方法测试代码太麻烦?来试试JUnit4
  • 原文地址:https://blog.csdn.net/xiao_ZHEDA/article/details/133313309