首页 > 编程语言 >python语言理解

python语言理解

时间:2024-01-27 19:55:52浏览次数:30  
标签:__ 语言 python train self 理解 images data image

python是一门面向对象的语言,强调的是对象,当我们创建一个类时,必然要给这个类赋予对应的属性去描述它,例如一个动物的类,那么这个类应该有动物种类,颜色,年龄,体重,习性等属性,代码如下:

class Animal:
    def __init__(self, species, color, age, weight, habitat):
        self.species = species
        self.color = color
        self.age = age
        self.weight = weight
        self.habitat = habitat

    def __str__(self):
        return f"{self.species} | Color: {self.color} | Age: {self.age} years | Weight: {self.weight} kg | Habitat: {self.habitat}"

以上的代码非常易懂,但我让AI根据要求{ 自定义dataset,该类可以自义训练和测试的比例 }生成以下代码:
代码的self.images属性初始化委托给了load_images()方法,也就是说python的类初始化__init__()可以调用该类的其他方法

    
import torch
from PIL import Image
from torchvision import transforms
import os

class CustomImageDataset(torch.utils.data.Dataset):
    def __init__(self, data_dir, train_ratio=0.8, transform=None):
        super(CustomImageDataset, self).__init__()
        self.data_dir = data_dir
        self.train_ratio = train_ratio
        self.transform = transform
        self.images = self.load_images()
        self.train_images, self.test_images = self.split_images()

    def load_images(self):
        # 加载所有图像文件
        image_files = os.listdir(self.data_dir)
        image_files = [os.path.join(self.data_dir, file) for file in image_files if file.endswith(('.png', '.jpg', '.jpeg', '.bmp'))]
        return image_files

    def split_images(self):
        # 根据训练比例分割图像
        train_images = self.images[:int(len(self.images) * self.train_ratio)]
        test_images = self.images[int(len(self.images) * self.train_ratio):]
        return train_images, test_images

    def __len__(self):
        return len(self.train_images)

    def __getitem__(self, idx):
        image_path = self.train_images[idx]
        image = Image.open(image_path).convert('RGB')  # 假设图像是以RGB格式打开的
        if self.transform:
            image = self.transform(image)
        return image

# 使用自定义数据集
custom_dataset = CustomImageDataset('/path/to/your/image/data', train_ratio=0.8)
dataloader = torch.utils.data.DataLoader(custom_dataset, batch_size=64, shuffle=True)

# 创建一个数据加载器,用于迭代训练集
for images in dataloader:
    # 处理图像
    pass




    

标签:__,语言,python,train,self,理解,images,data,image
From: https://www.cnblogs.com/seekwhale13/p/17991848

相关文章

  • c++实现一门计算机语言到手撸虚拟机实战200节
    1对于编程语言实现原理提供了实战。2学习之后对于JAVA,PHP,PY等语言的实现原理提供了经验平移参考3对JAVA等语言的虚拟机实现原理提供了实战参考。4加深对编程语言的驾驭和深度认知。5虚拟机是计算机系统中非常重要的组成部分,理解了虚拟机的原理和实现方式,从而更好地理解计算......
  • Stacklberg博弈理解
    古诺模型博弈论——连续产量古诺模型-知乎(zhihu.com)(1)两个厂商并不是同时决策,而是一方先决策,另一方根据对方的决策,再作出决策,即博弈有两个阶段(动态博弈);(2)后做决策的博弈方,知道先做决策的博弈方的决策;(3)两个厂商中,一个寡头厂商是处于支配地位的领导者,另一个是寡头厂商的......
  • 2024-01-27:用go语言,阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N堆金币, 第i堆金币
    2024-01-27:用go语言,阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N堆金币,第i堆金币的总重量和总价值分别是m[i]、v[i],阿里巴巴有一个承重量为T的背包,但并不一定有办法将全部的金币都装进去,他想装走尽可能多价值的金币,所有金币都可以随意分割,分割完的金币重量价值比(也就是单位......
  • C语言笔记9
       函数的参数传递形式参数:函数定义时的参数,简称形参。实际参数:函数调用时的参数,简称实参。实参与形参数目、类型和顺序应一致,占据不同存储单位。 理解单向值传递每个函数都有自己的变量空间,参数也位于这个空间;形参调用前不占内存单位,调用时对形参分配单位并传......
  • Python 潮流周刊第 37 期(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。周刊全文:https://pythoncat.top/posts/2024-01-27-weekly以下是本期摘要:......
  • 3_python第三方库
    ❓查看安装了哪些第三方库终端piplist❓更新第三方库版本pipinstall--upgrade第三方库名ERROR:pip'sdependencyresolverdoesnotcurrentlytakeintoaccountallthepackagesthatareinstalled.Thisbehaviouristhesourceofthefollowingdependencycon......
  • Python获取内存、CPU利用率,CPU温度
    最近一个项目的需求,在软件上加入硬件实时信息,大概搜索一下,没太好的结果,所以决定自己写一篇我的代码不难发现,都使用了psutil包,为什么呢,别的包我没太关注,纯粹是这台机的环境上有这个包如果大家没有这个包,使用pip工具安装一下即可,目前我还没发现兼容性问题python获取内存利用率......
  • 文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
    一、介绍文本分类系统,使用Python作为主要开发语言,通过选取的中文文本数据集("体育类","财经类","房产类","家居类","教育类","科技类","时尚类","时政类","游戏类","娱乐类"),基于TensorFlow搭建CNN卷积神经网络算法模型,并进行多轮迭代训练最后得到一个识......
  • SciTech-EE-Virtual Electronics Lab: How to Create an Oscilloscope Using Python a
    https://wiki.analog.com/university/tools/m2kVirtualElectronicsLab:HowtoCreateanOscilloscopeUsingPythonandADALM2000byArnieMaeBaesandChristianGarciaDownloadPDFAbstractAvirtualelectronicslaboratoryisacollectionofsoftware-based......
  • 1、【实操】使用python脚本自动检测域名信息是否准确
    背景:因为信息安全的原因,内外网表格数据等信息不能互传,因而内外网信息表同步频率比较低,导致部分信息存在偏差。比如域名、公网地址、内网地址等在更改后,信息没有及时同步,或者更新信息的人因为手工上传导致错误,没有及时发现,倒置后期排查问题时不能及时拿到准确信息,需要沿......