- 博客(136)
- 收藏
- 关注
原创 变分自编码器实现(VAE)
import torch from torch import nn class VAE(nn.Module): def __init__(self): super().__init__() self.encoder = nn.Sequential( nn.Linear(784, 256), nn.ReLU(), nn.Linear(256, 64), nn.ReLU(),
2022-03-16 14:27:42
381
原创 自编码器实现(AE)
import torch from torch import nn class AE(nn.Module): def __init__(self): super().__init__() self.encoder = nn.Sequential( nn.Linear(784, 256), nn.ReLU(), nn.Linear(256, 64), nn.ReLU(),
2022-03-15 19:58:46
508
原创 完整的模型验证套路
import torch import torchvision from PIL import Image from torch import nn image_path = "./imgs/dog.jpeg" image = Image.open(image_path) # 图片保留三通道 image = image.convert('RGB') transform = torchvision.transforms.Compose([torchvision.transforms.Resize((32
2022-03-01 16:51:15
215
原创 使用GPU训练
GPU使用1 import torch import torchvision.datasets from torch.utils.tensorboard import SummaryWriter import time # 准备数据集 from torch import nn from torch.utils.data import DataLoader import nn_seq train_data = torchvision.datasets.CIFAR10(root="../dataset"
2022-03-01 15:40:55
337
原创 完整的模型训练套路
import torch import torchvision.datasets from torch.utils.tensorboard import SummaryWriter from MyModule import * # 准备数据集 from torch import nn from torch.utils.data import DataLoader import nn_seq train_data = torchvision.datasets.CIFAR10(root="./datas
2022-03-01 11:53:15
297
原创 网络模型的保存与读取
保存 import torch import torchvision vgg16 = torchvision.models.vgg16(pretrained=False) # 保存方式1 保存模型结构 + 模型参数 torch.save(vgg16, "vgg16_method1.pth") # 保存方式2 保存模型参数(官方推荐) torch.save(vgg16.state_dict(), "vgg16_method2.pth") 加载 import torch import torchvi
2022-02-28 22:17:27
207
原创 现有网络模型的使用和修改
import torchvision from torch import nn vgg_false = torchvision.models.vgg16(pretrained=False) # 参数使用在别的数据集上训练好的初始化 vgg_true = torchvision.models.vgg16(pretrained=True) # 在现有的网络结构进行一些修改,使它适用于自己的网络结构 train_data = torchvision.datasets.CIFAR10("./dataset",
2022-02-28 19:12:25
193
原创 优化器的使用
import torch from torch import nn import torchvision from torch.nn import Conv2d, MaxPool2d, ReLU, Linear, Flatten from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter dataset = torchvision.datasets.CIFAR10("./dataset
2022-02-28 18:39:21
118
原创 损失函数和反向传播
import torch from torch.nn import L1Loss, MSELoss, CrossEntropyLoss inputs = torch.tensor([1, 2, 3], dtype=torch.float32) targets = torch.tensor([1, 2, 5], dtype=torch.float32) inputs = torch.reshape(inputs, (1, 1, 1, 3)) targets = torch.reshape(targets,
2022-02-28 16:42:28
142
原创 使用Sequential
不使用Sequential import torch from torch import nn import torchvision from torch.nn import Conv2d, MaxPool2d, ReLU, Linear, Flatten from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter class MyModule(nn.Module): de
2022-02-28 10:55:47
251
原创 神经网络线性层
import torch from torch import nn import torchvision from torch.nn import Conv2d, MaxPool2d, ReLU, Linear from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter dataset = torchvision.datasets.CIFAR10("./dataset", train=
2022-02-28 10:23:08
640
原创 神经网络非线性激活层
import torch from torch import nn import torchvision from torch.nn import Conv2d, MaxPool2d, ReLU from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter input = torch.tensor([[1, -0.5], [-1, 3]]) in
2022-02-27 14:20:03
127
原创 最大池化层的使用
import torch from torch import nn import torchvision from torch.nn import Conv2d, MaxPool2d from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter dataset = torchvision.datasets.CIFAR10("../dataset", train=False, transf
2022-02-24 16:13:30
152
原创 神经网络卷机层
import torch from torch import nn import torchvision from torch.nn import Conv2d from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvisi
2022-02-24 15:36:27
627
原创 神经网络基本骨架-nn.Module的使用
import torch from torch import nn class MyModule(nn.Module): def __init__(self) -> None: super().__init__() def forward(self, input): output = input + 1 return output moudle = MyModule() x = torch.tensor(1.0) o
2022-02-21 22:22:38
482
原创 DataLoader的使用
import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter # 准备测试集 test_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor()) # batch_size为批量大小(即每次取四张图片
2022-02-21 21:16:50
299
原创 torchvision数据集的使用
import torchvision from torch.utils.tensorboard import SummaryWriter dataset_transform = torchvision.transforms.Compose([ torchvision.transforms.ToTensor() ]) train_set = torchvision.datasets.CIFAR10(root="./dataset", train=True, transform=dataset_tr
2022-02-21 20:39:47
143
原创 transform的使用2
from PIL import Image from torchvision import transforms from torch.utils.tensorboard import SummaryWriter img = Image.open("/Users/computer/Documents/Code/pytorchLearning/imgs/five.png") trans_toTensor = transforms.ToTensor() tran_img = trans_toTensor(im
2022-02-20 15:28:32
1941
原创 transform的使用1
from PIL import Image from torchvision import transforms from torch.utils.tensorboard import SummaryWriter import cv2 writer = SummaryWriter("logs") # 1. transforms如何使用 img_path = "dataset/train/ants/0013035.jpg" img = Image.open(img_path) # 创建对象 tensor
2022-02-14 18:19:59
722
原创 tensorboard使用2
from torch.utils.tensorboard import SummaryWriter from PIL import Image import numpy as np writer = SummaryWriter("logs") img_path = "dataset/train/ants/0013035.jpg" img_PIL = Image.open(img_path) img_array = np.array(img_PIL) print(type(img_array)) # 输出
2022-02-14 16:25:50
2066
原创 TensorBoard使用1
代码 from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter("logs") for i in range(100): writer.add_scalar("y=x", i , i) writer.close() 运行后 生成一个文件 运行图片中命令点击网址即可查看 参考课程视频地址:https://www.bilibili.com/video/BV1hE411t7RN?p=8&spm_id
2022-02-12 14:11:10
219
原创 读取数据集
读取数据 数据目录结构 代码 from torch.utils.data import Dataset import os from PIL import Image # 使用pytorch对数据集进行操作需要继承Dataset类,重写相关方法 class MyData(Dataset): # 初始化,root_dir为跟路径,data_dir为跟路径下数据集的名字,该名字为该数据集下所有图片的标签 def __init__(self, root_dir, data_dir):
2022-02-12 12:36:34
1086
原创 四——排版题
有规律可循的排版题(简单) # include <iostream> using namespace std; main(){ int n; while(cin>>n){ //计算最后一排*的个数 int lastLine = n + 2*(n-1); //输出*的个数 int x = n; for(int i=0;i<n;i++){ int k = la
2021-06-22 20:43:45
116
原创 三——HASH的应用
# include <iostream> using namespace std; main(){ int n; int g[101] = {0}; cout<<g[0]<<endl; while(cin>>n && n!=0){ int grades,grade; for(int i = 0;i<n;i++){ cin>>grades;.
2021-06-22 12:52:29
139
原创 二——日期类问题
# include<iostream> # include<stdio.h> # include<stdlib.h> using namespace std; int monthNum[13][2] = { 0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 31,31, 31,31, 30,30, 31,31, 30,30, .
2021-06-21 21:56:35
173
原创 算法复习一——排序
排序 LintCode题目:下面分别用几种排序算法进行排序 描述 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。 样例 样例 1: 输入: [3, 2, 1, 4, 5] 输出: [1, 2, 3, 4, 5] 样例解释: 返回排序后的数组。 样例 2: 输入: [1, 1, 2, 1, 1] 输出: [1, 1, 1, 1, 2] 样例解释: 返回排好序的数组。 冒泡排序 public class Solution { /**
2021-06-21 15:14:43
119
原创 Python文件操作
文件的基本操作 文件操作的作用 什么是文件: 文件操作包含什么? 打开,关闭,读,写,复制。 文件操作的作用? 读取,写入… 文件的基本操作: 文件操作步骤: 1.打开文件 用下面三种方式都可以 f = open('C:/Users/Adminisrator/Desktop/hello.txt') f = open('C://Users//Adminisrator//Desktop//hello.txt') f = open(r'C:\Users\Adminisrator\Desktop\hello.txt
2021-05-19 09:47:32
194
1
原创 Java——Swing——JTable的使用
package JDBCStudy; import javax.swing.*; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.D
2021-05-02 10:18:40
473
原创 JDBC学习
JDBC的本质理解 1.JDBC是什么? Java Database Connectivity(Java语言连接数据库) 2.JDBC的本质是什么? JDBC是SUN公司定制的一套接口(interface) 接口都有调用者和实现者 面向接口调用,面向接口写实现类,这都属于面向接口编程。 java.sql.* 为什么要面向接口编程? 解耦合:降低程序的耦合度,提高程序的扩展力 多态机制就是非常典型的:面向抽象编程。 Animal a = new Cat(); Animal b = new Dog();
2021-05-02 10:17:23
112
原创 数据库SQL语言的使用
第一部分内容 数据库的基本概念 MySQL数据库软件 安装 卸载 配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL MySQL数据库软件 1. 配置 * MySQL服务启动 1. 手动。 2. cmd--> service
2021-03-12 19:12:49
221
原创 树(二)——二叉树
二叉树的定义 二叉树就是度不超过2的树。 **满二叉树:**一个二叉树,如果每一层的结点都达到最大值,则这个二叉树就是满二叉树。 **完全二叉树:**叶结点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。 核心代码实现 package tree; public class BinaryTree<Key extends Comparable<Key>,Value> { //记录根节点 private Node root; /
2021-03-01 10:32:00
219
原创 树(一)——基本概念
树的基本定义 树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。 树是由n(n>=1)个有限结点组成的一个具有层次关系的集合。 树具有以下特点: 1.每个结点有零个或多个子结点。 2.没有父结点的结点称之为根结点。 3.每一个非根结点只能有一个父结点。 4.每个节点及其后代结点整体上可以看做是一棵树,称为当前结点的父结点的一个子树。 树的相关术语 **结点的度:**一个结点含有的子树的个数称为该结点的度。 **叶结点:**度为
2021-02-27 20:35:10
401
原创 线性表(十一)——队列
基本概念 队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它按照先进先出的原则存储数据,先进入的数据在读取数据时最先被读出来。 代码实现 package linear; import java.util.Iterator; public class Queue<T> implements Iterable<T>{ private Node head; private Node last; pri
2021-02-27 17:17:19
152
原创 汉诺塔问题
问题描述 用栈模拟汉诺塔问题 在经典的汉诺塔问题中,有 3 个塔和 N 个可用来堆砌成塔的不同大小的盘子。要求盘子必须按照从小到大的顺序从上往下堆 (如,任意一个盘子,其必须堆在比它大的盘子上面)。同时,你必须满足以下限制条件: (1) 每次只能移动一个盘子。 (2) 每个盘子从堆的顶部被移动后,只能置放于下一个堆中。 (3) 每个盘子只能放在比它大的盘子上面。 请写一段程序,实现将第一个堆的盘子移动到最后一个堆中。 样例 样例1: 输入: 3 输出: towers[0]: [] towers[1]:
2021-02-26 21:02:11
128
原创 线性表(十)——栈——案例——逆波兰表达式求值问题
问题概述 逆波兰表达式求值问题是我们计算机中经常遇到的一类问题,要研究明白这个问题,首先我们得搞清楚什么是逆波兰表达式。要搞清楚逆波兰表达式,我们要从中缀表达式说起。 中缀表达式 中缀表达式就是我们平常生活中使用的表达式,因为简单、易懂。中缀表达式的特点是:二元运算符总是置于两个操作数中间。 但对于计算机来说就不是这样了,因为中缀表达式的计算顺序不具有规律性。不同的运算符具有不同的优先级,如果计算机执行中缀表达式,需要解析表达式语义,做大量的优先级相关操作。所以计算机是通过逆波兰表达式对表达式进行计算的。
2021-02-19 20:58:21
107
原创 线性表(九)——栈——案例——括号匹配问题
问题描述 给另一个字符串,里面可能包含“()”小括号和其他字符,请编写程序检查该字符串中的小括号是否成对出现。 例如:正确:(上海)(长安), (上海(北京(广东))) 错误:((上海)长安 解题思想 依次遍历字符串的每个字符,如果碰到左括号,将左括号压入栈中;如果碰见右括号需要先判断栈中是否还有元素,如果没有元素则说明没有左括号与该右括号匹配则返回false,否则弹出一个左括号。当所有字符都遍历完之后,如果栈为空则返回true,否则返回false。 代码实现 package test; import l
2021-02-19 19:37:24
168
原创 线性表(八)——栈——栈的基本使用
栈的基本概念 栈是一种先进后出的数据结构(FILO)的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个弹出来)。 我们称数据进入到栈的动作为压栈,数据从栈中出去的动作为弹栈。 ...
2021-02-19 16:52:12
149
1
原创 线性表(七)——链表——约瑟夫问题(循环链表解决)
问题描述 传说有这样一个故事,在罗马人占领乔塔怕特后,39个犹太人与约瑟夫及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀的方式,41个人排成一个圆圈,第一个人从1开始报数,依次往后,如果有人报数到3,那么这个人就必须自杀,然后再由他的下一个人重新从1开始报数,直到所有人都自杀身亡为止。然而约瑟夫和他的朋友并不想遵从。于是,约瑟夫要他的朋友先假装遵从,他将朋友和自己安排在第16与第31个位置,从而逃过了这场死亡游戏。 解题思路 构建含有41个结点的单项循环链表,分别存储1
2021-02-18 20:19:42
250
原创 线性表(六)——链表——快慢指针
快慢指针概念 快慢指针是指定义两个指针,这两个指针的移动速度一快一慢,以此来制造自己想要的差值,这个差值可以解决许多问题。 接下来举几个快慢指针能够解决的问题: 中间值问题 package linear; public class FastSlowTest { public static void main(String[] args) { Node<String> s1 = new Node<>("one",null); Node<
2021-02-17 19:58:25
134
原创 线性表(五)——链表——单链表反转
算法思想 调用reverse(Node curr)方法反转每一个结点,从元素1结点开始; 如果发现curr还有下一个节点,则递归调用reverse(curr,next)对下一个结点反转; 最终递归的出口是最后一个元素结点,因为它没有下一个元素了,当到达了出口处让head指向最后一个元素结点; 递归依次返回,完成。 具体实现 核心代码: //返回整个链表 public void reverse(){ //判断当前链表是否是空链表,如果是结束,如果不是调用重载的方法完成反转
2021-02-15 20:20:32
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人