javase 数组
四、数组数组概述 数组是引用数据类型,隐式继承Object,因此可以调用Object类中的方法 数组对象存储在堆内存中 数组的特点 数组长度一旦确定不可改变 所有数组对象都有length属性,用来获取数组元素个数 优点: 根据下标查找某个元素的效率极高 缺点: 随机增删的效率低,需要后移/前移很多元素 无法存储大量数据,因为很难在内存上找到非常大的一块连续内存 一维数组静态初始化一维数组已经知道数组中的值时使用 1234// 第一种int[] arr = {11,22,33}; 或者 int arr[] = {11,22,33}; //后者不建议// 第二种int[] arr = new int[] {11,22,33}; 用第一种就好了! JDK5 新特性:增强for循环 / for-each 循环123for(元素数据类型 变量名:数组名){ // 变量名代表数组中的每个元素,可以自己取名 ...
javase 面向对象
三、面向对象面向对象概述面向过程关注点在实现功能的步骤上 面向对象关注点在实现功能需要哪些对象的参与,可以把问题拆分成几个对象,对象协作起来解决问题。 面向对象开发方式耦合度低,扩展能力强。 面向对象的三大特征 封装 继承 多态 对象的创建1234[修饰符列表] class 类名{ //属性 /} JVM内存分析元空间 metaspace元空间中存储的是类的元信息,字节码等。 元空间是java8之后引入的。是JVM规范中方法区的实现。 方法区:JVM规范 的叫法,各个厂商根据这个规范去实现具体的java虚拟机。 总结:方法区是规范,元空间是实现。java8之前使用永久代实现的。 堆内存所有new的对象,都存储在堆内存中。 栈方法被调用时会给该方法分配空间,在VM...
javase 引入、基本语法
一、引入JAVA语言特性简单性:不像c++支持多继承,无指针。底层由c++实现。 面向对象 可移植性:一次编译,到处运行。在win上编译后可以在Linux上运行。 Java程序在Java虚拟机上运行,JVM : Java virtual machine JDK :Java开发工具包 多线程 健壮性:产生的垃圾是自动回收的,不需要像c++一样手动回收内存空间。 安全性 JAVA的加载与执行 注:.class文件是字节码文件,不是纯粹的二进制文件,否则操作系统就可以直接运行了。 编译:使用JDK中自带的javac.exe进行编译使用方法: 1javac java源文件的路径 一个源文件可能生成多个.class文件 .class文件生成后,删除.java文件不影响程序的运行,但最好不要删掉,以防后面要修改。 运行:使用java.exe运行使用方法: 磁盘上有一个A.class 1java A...
C和C++中的易错点
一、”.”和”->”的区别 对于结构体指针,应该使用”->” 对于结构体,应该使用”.”‘ 举例: 1234567891011121314struct Student { int age; char name[20];};// 定义结构体变量struct Student s;s.age = 20; // 直接通过变量访问成员strcpy(s.name, "Alice");struct Student *ptr;ptr = &s; // ptr指向结构体变量sptr->age = 21; // 通过指针访问成员// 等价于 (*ptr).age = 21;
Swin-Unet 复现记录(记第一次复现)
一、train中遇到的问题(一)python、pytorch、cuda版本不对应swin-unet官方仓库上写的使用的是python3.7运行的代码,所以我一开始把环境全部朝python3.7去配置。却一直报错。 经过一番搜索后,发现python3.7对应的环境无法在4060laptop上运行。 在多次尝试不同的环境,并结合b站复现别的论文的视频,选择将python版本改为3.8。 1、新建独立环境12conda create -n py.8 python=3.8 # 明确指定Python 3.8conda activate py.8 2、使用pip绕过conda依赖限制1pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url...
动手学深度学习 2
一、卷积卷积有什么用? 通过卷积核的不同设置,使得每个输出通道可以识别特定的模式,比如识别边缘、锐化、模糊等操作。 核的参数怎么得到的? 学出来的,不是自己设置的。 卷积尺寸公式: 输出尺寸*=*[输入尺寸-kernel-size+2*padding+stride]/stride 填充在输入周围添加行/列,来控制输出形状的减少量 步幅每次滑动kernal窗口时的行/列的步长,可以成倍的减少输出形状 注意: 1、第一个公式里的ph是要上下都加了行,所以要乘以二!!! 2、padding通常设置为k-1...
动手学深度学习 1
一、数据操作+预处理N维数组N维数组是机器学习和神经网络的主要数据结构 0-d 标量:一个数字 1-d 向量:一个特征向量 2-d 矩阵:一个样本-特征矩阵 3-d RGB图片(宽×高×通道) 4-d 一个RGB图片的批量(批量大小batch×宽×高×通道) 创建数组需要: 形状 每个元素的数据类型 每个元素的值 访问元素 左下角子区域:1:3表示[1,3) 第二个子区域: ::3表示行是每3行一跳 ::2表示列是每两列一跳 关于内存x += y 就是直接在原来的x上加上y,与加法的形式不一样 x = x + y ...
小土堆pytorch 第三天
一、最大池化的使用池化——压缩特征 最大池化——取当前池化核中的最大的数 12345678910111213141516171819202122232425import torchfrom torch import nnfrom torch.nn import MaxPool2dinput = torch.tensor([[1, 2, 0, 3, 1], [0, 1, 2, 3, 1], [1, 2, 1, 0, 0], [5, 2, 3, 1, 1], [2, 1, 0, 1, 1]])input = torch.reshape(input, (-1, 1, 5, 5))class Test(nn.Module): def __init__(self): super(Test,self).__init__() self.maxpool1 =...
小土堆pytorch 第四天
一、现有模型的加载、修改、添加123456789101112131415import torchvisionfrom torch import nnvgg16_false = torchvision.models.vgg16(pretrained=False)vgg16_true = torchvision.models.vgg16(pretrained=True)print(vgg16_true)train_data = torchvision.datasets.CIFAR10("dataset", train=True, transform=torchvision.transforms.ToTensor(),download=True)vgg16_true.classifier.add_module('add_linear', nn.Linear(1000, 10)) # 添加 层print(vgg16_true)print(vgg16_false)vgg16_false.classifier[6] = nn.Linear(4096,...
小土堆pytorch 第二天
一、DataLoader 的使用12345678910111213141516171819import torchvisionfrom torch.utils.data import DataLoaderfrom torch.utils.tensorboard import SummaryWritertest_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=True) # 每次取的个数 取完后是否打乱 最后如果因为数量无法分配是否舍去writer =...