自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

栗子好好吃的博客

抱怨使人放弃进步

  • 博客(448)
  • 收藏
  • 关注

原创 【算法】大根堆

【代码】【算法】大根堆。

2022-09-07 10:53:04 389 1

转载 【mysql】多表查询、左外连接、内连接、练习题

多表查询、左外连接、内连接、子查询、练习题

2022-08-04 10:49:18 518

转载 【mysql】约束、外键约束、多对多关系

代码、mysql约束、外键约束、多对多关系。

2022-08-01 14:40:18 285

转载 【mysql】- 常用命令

代码】【mysql】-常用命令。

2022-08-01 09:04:04 131

转载 【mysql】- 初始化

在mysql的根目录下创建my.ini,根目录的截图和输入的内容如下所示。在根目录下可以看见生成的data文件。下面命令设置一条超级管理员用户。

2022-07-30 16:32:41 4107 2

原创 【vscode】编译java时报错乱码

报错如下解决方案改变终端的编码格式chcp 946注意:chcp 65001 UTF-8编码chcp 936 GBK2312代码页

2021-11-13 22:41:37 591 1

原创 【linux】 -设备名称与文件目录

参考 - 鸟哥的linux私房菜基础篇在linux系统中,每个设备都被当成一个文件来对待几乎所有的硬件设备文件都在/dev这个目录内下面给出,常见设备和文件路径的对应关系设备设备在Linux中的文件名SCSI、SATA、USB磁盘驱动器/dev/sd[a-p]U盘/dev/sd[a-p] (与SATA相同)Virtio接口/dev/vd[a-p] (用于虚拟机内)软盘驱动器/dev/fd[0-7]打印机/dev/lp[0-2] (25针打

2021-04-06 09:03:50 510

原创 【算法小积累】 - 提取非0数最右侧的1

参考 - 69:49const getRightOne = num => { return num & (~num + 1);};

2021-03-30 17:33:52 178

原创 【异或运算】 - 交换2个数

1. 代码let a = 3; let b = 4;a = a ^ b;b = a ^ b;a = a ^ b;2. 异或的性质不同为1,相同为0(可以看做是无进制位的加法)交换律: a ^ b = b ^ a;结合律: (a ^ b) ^ c = a ^ (b ^ a);0 ^ x = x;x ^ x = 0;3. 证明下面证明1中的代码a = 3 ^ 4;b = (3 ^ 4) ^ 4 = 3 ^ 0 = 3;a = (3 ^ 4) ^ 3 = 4 ^ 0 = 4

2021-03-30 11:52:53 137

原创 【算法】 - 动态规划 + 位运算

题目描述思路1:写一个返回2进制中1数量的函数countOne遍历0到num,对每一个数使用countOne,并将结果保存到res中返回var countBits = function (num) { let res = new Array(num + 1).fill(0); for (let i = 0; i <= num; i++) { res[i] = countOne(i.toString(2)); } return res;};

2021-03-03 09:47:12 173

原创 【算法】 - 滑动窗口

1. 题目链接2. 分析最多可以将K个值从0变成1,因此滑动窗口的限制条件: 0的数量(zeros)小于K,算法过程如下有一个滑动窗口(slipper),每次都会从A中读入一个数当读入的数为0时,zeros++当zeros的数量大于K时,会取出slipper首部的元素,当取值为0时zeros--总体代码如下:var longestOnes = function (A, K) { let slipper = []; let len = A.length; let r

2021-02-25 10:37:16 127

转载 【小工具分享】 - vscode注释自动生成

参考

2021-01-27 09:59:39 394

原创 【语言排行查询】 - 记一个小网站

tiobe

2021-01-25 06:01:09 147

原创 [生态建设] - js判断小技巧

0、参考说明: 从几个易得的点出发,逐步向外扩展延申,保证代码的可靠性1、判断是否为某个类型// 判断是否为 nullconst isNull = o => { return o === null;};// 判断是否为 undefinedconst isUndefined = o => { return o === undefined;};// 判断是否为 null or undefinedconst isNil = o => { return isNu

2021-01-09 10:24:45 139

原创 [c++] - 简单的冒泡

#include <iostream>using namespace std;int main(){ // 利用冒泡排序实现升序序列 int arr[9] = {4, 2, 8, 0, 5, 7, 1, 3, 9}; cout << "排序前: " << endl; for (int i = 0; i < 9; i++) { cout << arr[i] << " "; } cout <&l

2020-12-26 00:26:47 135

原创 [Java核心技术(卷Ⅰ)] - 判断相等

参考 - P184public boolean equals(Object otherObject) { // a quick test to see if the objects are identical if (this == otherObject) return true; // must return false if the explicit parameter is null if (otherObject == null) return null; // if th.

2020-12-14 13:36:21 124

原创 [Java核心技术(卷I)] - vscode手动编译运行继承类

参考 - P160~P161主要有3个类: 一个测试类(ManagerTest)、一个子类(Manager)、一个父类(Employee)注意点:-1. 使用 javac -d . *.java进行预编译目录结构入下:此时会生成目录结构如下:之后运行 java com.inheritance.ManagerTest附上几个类的代码// com.inheritance.Manager.javapackage com.inheritance;public c..

2020-12-02 00:30:49 491 2

原创 [web性能优化] - 使用在线工具对html、js、css进行压缩

参考1. 学习点使用 在线工具对html、css、js进行压缩学会分析压缩前后的效率提高点2. 解决方案:2.1 HTML压缩在线压缩nodejs提供了 html-minifier工具(在构建层对代码进行压缩)后端模板引擎渲染压缩2.2 CSS压缩使用html-minifier对html中的css进行压缩使用clean-css对css进行压缩使用在线压缩如下图所示。2.3 js压缩与混乱使用html-minifier对html中的js进行压缩使用ug

2020-11-25 00:42:25 452

原创 [Java核心技术(卷I)] - Java中的参数能做什么和不能做什么

1. 参考 - P123 ~ P1262. 你将学到Java中对方法参数能做什么和不能做什么方法不能修改基本数据类型的参数(数值型或布尔型)方法可以改变对象参数的状态方法不能让一个对象参数引用一个新的对象3. 代码证明public class ParamTest { public static void main(String[] args) { /** * Test 1: Methods can`t modify numeric param

2020-11-20 00:10:23 262

原创 [Java核心技术(卷I)] - 简易的日历

参考 - P102~P1031. 目标生成一个日历,格式如下图所示。ps: 当前的天数需要标记为*2. 核心对日历的变量import java.time.*;public class CalendarTest{ public static void main(String[] args) { LocalDate date = LocalDate.now(); // 获取当前日期 int month = date.getMonthValue(); /

2020-11-16 08:37:09 186

原创 [Head First Java] - 线程共享数据问题

参考 - P5071. 说明两个线程共享同一份数据,每次使用数据时,需要先判断其是否在合理范围每次使用数据完毕使用Thread.sleep函数让线程阻塞2.代码class BankAccount { private int balance = 100; public int getBalance() { return balance; } public void withdraw(int amount) { balance =

2020-11-13 00:48:52 193

原创 [Head First Java] - 给线程命名

参考 - P503public class RunThreads implements Runnable { public static void main (String[] args) { RunThreads runner = new RunThreads(); Thread alpha = new Thread(runner); Thread beta = new Thread(runner); alpha.setName("

2020-11-12 09:02:34 220

原创 [Head First Java] - Swing做一个简单的客户端

参考 - P4871. vscode配置java的格式点击左下角齿轮 -> 设置 -> 打开任意的setting.json输入如下代码{ code-runner.executorMap": { "java": "cd $dir && javac -encoding utf-8 $fileName && java $fileNameWithoutExt" },}之后再执行就可以了2. 建议的聊天客户端如下import

2020-11-12 00:06:50 406 4

原创 [Head First Java] - 简单的建议程序

参考 - p481、p484与我对接的业务层使用的是JAVA语言,因此花点时间入门java.下面几篇博客可能都是关于java的,我觉得在工作中可能会遇到的简单的通信DailyAdviceClient(客户端程序)import java.io.*;import java.net.*;public class DailyAdviceClient{ public void go(){ try{ Socket s = new Socket("12

2020-11-11 01:02:11 212

原创 [C++] 转义序列

参考C++ Primer(第5版)P36名称转义序列换行符\n横向制表符\t报警(响铃)符\a纵向制表符\v退格符\b双引号"反斜杠\问号?单引号’回车符\r进纸符\f

2020-11-09 00:17:32 287

原创 [redux] - createStore简单的实现

class createStore { constructor(reducer, preloadedState, enhancer) { this.currentReducer = reducer; this.currentState = preloadedState; this.currentListeners = []; this.nextListeners = this.currentListeners; this.isDispatching = fal..

2020-10-26 10:27:42 267

原创 [github] - git使用小结(分支拉取、版本回退)

1. 首次(fork项目之后)$ git clone [master]$ git branch -a$ git checkout -b [自己的分支名] [远程仓库的分支名]克隆的是主干网络2. 再次拉取代码$ git pull [master下选择分支名] [分支名]$ git push origin HEAD:[分支名]拉取首先得进入主仓(不是自己的远程仓)然后切换到分支3. 版本回退$ git log$ git reset --hard [版本号]$ gi

2020-09-25 20:29:37 596

转载 [pytorch、学习] - 9.2 微调

参考9.2 微调在前面得一些章节中,我们介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型。我们还描述了学术界当下使用最广泛规模图像数据集ImageNet,它有超过1000万的图像和1000类的物体。然而,我们平常接触到数据集的规模通常在这两者之间。假设我们想从图像中识别出不同种类的椅子,然后将购买链接推荐给用户。一种可能的方法是先找出100种常用的椅子,为椅子拍摄1000张不同角度的图像,然后在收集到的图像数据集上训练一个分类模型。这个椅子数据集虽然可能比Fashion-MN

2020-07-10 11:43:10 248

转载 [pytorch、学习] - 9.1 图像增广

参考9.1 图像增广在5.6节(深度卷积神经网络)里我们提过,大规模数据集是成功应用神经网络的前提。图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不相同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。import timeimport torchfrom torch import nn, optimfrom torch.utils.data import Dat

2020-07-10 11:32:01 563

转载 [pytorch、学习] - 5.9 含并行连结的网络(GoogLeNet)

参考(https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.9_googlenet)5.9 含并行连结的网络(GoogLeNet)在2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet的网络结构大放异彩。它虽然在名字上向LeNet致敬,但在网络结构上已经很难看到LeNet的影子。GoogLeNet吸收了NiN中网络串联网络的思想,并在此基础上做了很大改进。在随后的几年里,研究人员对GoogLeNet进行了数次改进,本

2020-07-09 10:05:53 731

转载 [pytorch、学习] - 5.8 网络中的网络(NiN)

参考5.8 网络中的网络(NiN)前几节介绍的LeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet和VGG对LeNet的改进主要在于如何对这两个模块加宽(增加通道数)和加深。本节我们介绍网络中的网络(NiN)。它提出了另外一个思路,即串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。5.8.1 NiN块我们知道,卷积层的输入和输出通常是四维数组(样本, 通道, 高, 宽),而全连接层的

2020-07-08 10:43:29 224

转载 [pytorch、学习] - 5.7 使用重复元素的网络(VGG)

参考5.7 使用重复元素的网络(VGG)AlexNet在LeNet的基础上增加了3个卷积层。但AlexNet作者对它们的卷积窗口、输出通道数和构造顺序均做了大量的调整。虽然AlexNet指明了深度卷积神经网络可以取得出色的结果,但并没有提供简单的规则以指导后来的研究者如何设计新的网络。我们将在本章的后续几节里介绍几种不同的深度网络设计思路。下面介绍VGG5.7.1 VGG块VGG块的组成规律是:连续使用数个相同的填充为1、窗口形状为3×3的卷积层后接上一个步幅为2、窗口形状为2×2的最大池化层。卷

2020-07-08 10:37:17 395

转载 [pytorch、学习] - 5.6 深度卷积神经网络(AlexNet)

参考5.6 深度卷积神经网络(AlexNet)在LeNet提出后的将近20年里,神经网络一度被其他机器学习方法超越,如支持向量机。虽然LeNet可以在早期的小数据集上取得好的成绩,但是在更大的真实数据集上的表现并不尽如人意。一方面,神经网络计算复杂。虽然20世纪90年代也有过一些针对神经网络的加速硬件,但并没有像之后GPU那样大量普及。因此,训练一个多通道、多层和有大量参数的卷积神经网络在当年很难完成。另一方面,当年研究者还没有大量深入研究参数初始化和非凸优化算法等诸多领域,导致复杂的神经网络的训练通常

2020-07-08 10:33:25 339

转载 [pytorch、学习] - 5.5 卷积神经网络(LeNet)

参考5.5 卷积神经网络(LeNet)卷积层尝试解决两个问题:卷积层保留输入形状,使图像的像素在高和宽两个方向上的相关性均可能被有效识别;卷积层通过滑动窗口将同一卷积核和不同位置的输入重复计算,从而避免参数尺寸过大。5.5.1 LeNet模型LeNet分为卷积层块和全连接层块两个部分.卷积层块的基本单位是卷积层后接最大池化层: 卷积层用来识别图像里的空间模式(线条和物体局部),之后最大池化用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都

2020-07-08 10:26:01 302

转载 [pytorch、学习] - 5.4 池化层

参考5.4 池化层在本节中我们介绍池化(pooling)层,它的提出是为了缓解卷积层对位置的过度敏感性。5.4.1 二维最大池化层和平均池化层池化层直接计算池化窗口内元素的最大值或者平均值。该运算也叫做最大池化层或平均池化层。下面把池化层的前向计算实现在pool2d函数里。import torchimport torch.nn as nndef pool2d(X, pool_size, mode="max"): X = X.float() p_h, p_w = pool_

2020-07-08 10:22:38 353

转载 [pytorch、学习] - 5.3 多输入通道和多输出通道

参考5.3 多输入通道和多输出通道前面两节里我们用到的输入和输出都是二维数组,但真实数据的维度经常更高。例如,彩色图像在高和宽2个维度外还有RGB(红、绿、蓝)3个颜色通道。假设彩色图像的高和宽分别是h和w(像素),那么它可以表示为一个3 * h * w的多维数组。我们将大小为3的这一维称为通道(channel)维。本节将介绍含多个输入通道或多个输出通道的卷积核。5.3.1 多输入通道接下来我们实现含多个输入通道的互相关运算。我们只需要对每个通道做互相关运算,然后通过add_n函数来进行累加im

2020-07-08 10:17:53 2690

转载 [pytorch、学习] - 5.2 填充和步幅

参考5.2 填充和步幅5.2.1 填充填充(padding)是指在输入高和宽的两侧填充元素(通常是0元素)。图5.2里我们在原输入高和宽的两侧分别添加了值为0的元素,使得输入高和宽从3变成了5,并导致输出高和宽由2增加到4。图5.2中的阴影部分为第一个输出元素及其计算所使用的输入和核数组元素: 0 * 0 + 0 * 1 + 0 * 2 + 0 * 3 = 0.下面的例子里,我们创建一个高和宽为3的二维卷积层,然后设输入高和宽的填充数分别为1。给定一个高和宽为8的输入,我们发现输出的高和宽也是8

2020-07-07 11:04:53 332

转载 [pytorch、学习] - 5.1 二维卷积层

参考5.1 二维卷积层卷积神经网络(convolutional neural network)是含有卷积层(convolutional layer)的神经网络。本章介绍的卷积神经网络均使用最常见的二维卷积层。它有高和宽两个空间维度,常用来处理图像数据。本节中,我们将介绍简单形式的二维卷积层的工作原理。5.1.1 二维互相关运算# 将上述过程实现在 corr2d 函数里.它接受输入数组 X 与核数组 K,并输出数组 Yimport torch from torch import nndef

2020-07-07 10:59:43 280

转载 [pytorch、学习] - 4.6 GPU计算

参考4.6 GPU计算到目前为止,我们一直使用CPU进行计算。对复杂的神经网络和大规模数据来说,使用CPU来计算可能不够高效。在本节中,将要介绍如何使用单块NIVIDA GPU进行计算4.6.1 计算设备PyTorch可以指定用来存储和计算的设备,如果用内存的CPU或者显存的GPU。默认情况下,PyTorch会将数据创建在内存,然后利用GPU来计算。用torch.cuda.is_available()查看GPU是否可用:import torchfrom torch import nnto

2020-07-07 10:53:24 193

转载 [pytorch、学习] - 4.5 读取和存储

参考4.5 读取和存储到目前为止,我们介绍了如何处理数据以及如何构建、训练和测试深度学习模型。然而在实际中,我们有时需要把训练好的模型部署到很多不同的设备。在这种情况下,我们可以把内存中训练好的模型参数存储在硬盘上供后续读取使用。4.5.1 读写tensor我们可以直接使用save函数和load函数分别存储和读取Tensor。下面的例子创建了Tensor变量x,并将其存储在文件名为x.pt的文件里.import torchimport torch.nn as nnx = torch.one

2020-07-07 10:48:32 286

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除