深度学习相关的一些分析
batchsize
"""
批训练,把数据变成一小批一小批数据进行训练。
DataLoader就是用来包装所使用的数据,每次抛出一批数据
"""
import torch
import torch.utils.data as Data
BATCH_SIZE = 5 # 批训练的数据个数
x = torch.linspace(1, 10, 10) # 训练数据
print(x)
y = torch.linspace(10, 1, 10) # 标签
print(y)
# 把数据放在数据库中
torch_dataset = Data.TensorDataset(x, y) # 对给定的 tensor 数据,将他们包装成 dataset
loader = Data.DataLoader(
# 从数据库中每次抽出batch size个样本
dataset=torch_dataset, # torch TensorDataset format
batch_size=BATCH_SIZE, # mini batch size
shuffle=True, # 要不要打乱数据 (打乱比较好)
num_workers=2, # 多线程来读数据
)
def show_batch():
for epoch in range(3):
for step, (batch_x, batch_y) in enumerate(loader):
# training
print("steop:{}, batch_x:{}, batch_y:{}".format(step, batch_x, batch_y))
show_batch()
tensor([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
tensor([10., 9., 8., 7., 6., 5., 4., 3., 2., 1.])
steop:0, batch_x:tensor([10., 1., 3., 7., 6.]), batch_y:tensor([ 1., 10., 8., 4., 5.])
steop:1, batch_x:tensor([8., 5., 4., 9., 2.]), batch_y:tensor([3., 6., 7., 2., 9.])
steop:0, batch_x:tensor([ 9., 3., 10., 1., 5.]), batch_y:tensor([ 2., 8., 1., 10., 6.])
steop:1, batch_x:tensor([2., 6., 8., 4., 7.]), batch_y:tensor([9., 5., 3., 7., 4.])
steop:0, batch_x:tensor([ 2., 10., 9., 6., 1.]), batch_y:tensor([ 9., 1., 2., 5., 10.])
steop:1, batch_x:tensor([8., 3., 4., 7., 5.]), batch_y:tensor([3., 8., 7., 4., 6.])
类的使用和继承(学习资料)
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
创建类相关
class CuteCat:
def __init__(self)
self.name = dingdang
cat = CuteCat()
#这样的话有个问题就是name的值被固定了
所以我们可以写成
class CuteCat:
def __init__(self,cat_name)
self.name = name
##类的继承

当我们写猫和人时会发现有些部分像名字和性别这些都高度相同,那么这个时候我们可以写一些共有的类,让其他直接继承,例如可以写一个哺乳类动物的类

这样的话人和猫都可以继承这个类
这个时候我们写的cat就可以继承父类的姓名 性别 等这些
如果我们想调用cat.pop 猫拉屎这个东西 但是此时我们会发现一件事就是cat中没有那么它还是从父类里面继承,但是如果cat类里面有的话,那么是优先从自己这里继承的


但是这个时候又会有一个这样的问题存在,就是人和猫在尾巴的这个属性里都有但是不同

如果此时我们单独用Init函数写这个尾巴属性,那么此时就会优先调用cat的属性而不是父类,因此也就丧失了姓名 性别等属性,如果此时仍这样写就需要在cat里面把那些姓名 性别再写一遍

因此我们可以用super继承当前的父类 同时底下约定了自身的self.has_tail属性 这个self是基础属性,不同于def的函数,def的函数是可以子类有的话就优先从子类里用,基础属性是用Init定义的,实际使用的时候就是这两种区别
cat=Mammal("mao",18) #基础的定义 需要子类用super继承 同时用Init定义自己的
cat.pop #这里只需要在子类里写出自己的就行

8820

被折叠的 条评论
为什么被折叠?



