自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 PyTorch深度学习实践

根据学习情况随时更新。2020.08.14更新完成。参考课程-刘二大人《PyTorch深度学习实践》文章目录(一)课程概述(二)线性模型(三)梯度下降算法(四)反向传播(五)用PyTorch实现线性回归(六)Logistic回归(七)多维特征输入的分类问题(八)加载数据集(九)多分类问题(十)卷积神经网络(十一)循环神经网络(一)课程概述本章知识部分涉及到计算图的正向传播(表达式计算)和反向传播(表达式求导),无需赘述。(二)线性模型机器学习的过程训练时如果y值已知的学习是监督学习。数

2020-08-06 16:30:34 5373 4

原创 后端学习 - Docker

Docker

2023-01-28 09:43:40 183

原创 后端学习 - gRPC

包含自己实现的demo

2022-11-29 16:34:30 174

原创 后端学习 - Zookeeper & Kafka

忠孝东路走九遍

2022-11-23 19:30:49 552

原创 分布式锁的三种实现

参考链接文章目录分布式锁的作用分布式锁应该具有的条件实现1 基于数据库实现2 基于 Redis实现3 基于 ZooKeeper分布式锁的作用分布式锁是一种 跨机器的互斥机制 来控制 共享资源的访问具体地,为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在单机部署的情况下,可以使用并发处理相关的功能进行互斥控制。随着业务发展,单机部署的系统演化成分布式集群系统后,由于分布式系统多线程、多进程并且 分布在不同机器上,使原单机部署情况下的并发控制锁策略失效,需要分布式锁解决此问

2022-05-03 17:50:28 259

原创 AQS & ReentrantLock 实现原理

参考链接文章目录1 AQS (AbstractQuenedSynchronizer)2 ReentrantLock 非公平锁加锁流程3 ReentrantLock 和 synchronized 的异同1 AQS (AbstractQuenedSynchronizer)AQS 维护状态 volatile int state (ReentrantLock 将它作为锁的重入次数)和一个 FIFO 的线程等待队列,多线程争用资源被阻塞的时候就会进入这个队列;队列头部的线程执行完毕之后,它会调用它的后继的线

2022-04-22 16:26:35 183

原创 synchronized 实现原理

参考链接文章目录一 基本使用1 三个作用2 三种用法二 同步原理1 synchronized 同步代码块2 synchronized 同步方法3 Java 对象头一 基本使用1 三个作用原子性:确保线程互斥的访问同步代码,即同一时间只有一个线程会进入同步代码块可见性:保证共享变量的修改能够及时可见,依赖于 JMM 对一个变量 unlock 操作之前,必须要同步到主内存中;对一个变量进行 lock 操作,则将会清空工作内存(线程私有)中此变量的值,重新从主内存中 load 或 assign

2022-04-22 10:44:34 436

原创 22日常实习面试记录

最后去快手了

2022-04-19 15:31:08 1330

原创 Spring 相关问题

循环依赖

2022-04-07 11:07:25 597

原创 后端学习 - 计算机网络

基础复习

2022-04-06 09:44:02 2598 1

原创 算法 - 排序算法

1 快速排序时间复杂度 O(nlogn) def quicksort(start, end, nums): if start >= end: return flag = nums[start] r_ptr = end l_ptr = start while (l_ptr < r_ptr):

2022-03-31 21:40:20 413

原创 后端学习 - 操作系统

文章目录一 概述1 操作系统的位置2 计算机的组成一 概述1 操作系统的位置操作系统是在硬件的基础之上安装的 软件,能够根据用户输入的指令达到 控制硬件 的效果操作系统相当于是一个中间层,为用户层和硬件提供各自的借口,屏蔽了不同应用和硬件之间的差异,达到统一标准的作用大部分计算机有两种运行模式:内核态 和 用户态,软件中最基础的部分是操作系统,它运行在 内核态 中。操作系统具有硬件的访问权,可以执行机器能够运行的任何指令;软件的其余部分运行在 用户态 下2 计算机的组成冯诺伊曼体系结构

2022-03-31 10:59:35 534

原创 后端学习 - MySQL存储引擎、索引与事务

文章目录存储引擎:MyISAM 与 InnoDBMySQL 事务1 ACID2 事务的隔离级别存储引擎:MyISAM 与 InnoDB相比之下,InnoDB 具有 支持事务、支持行级锁、支持外键 的新特性MyISAM 的索引结构是MySQL 事务1 ACID原子性:事务是最小的执行单位,不允许分割(事务内的一系列操作,要么全都做,要么全不做)一致性:事务执行前后,数据库的一致性保持不变隔离性:同时进行的事务之间互不影响持久性:事务提交后,对数据库中数据的修改是永久的2 事务的隔

2022-03-28 10:51:42 1081

原创 后端学习 - 设计模式与设计原则

文章目录创建型模式1 工厂模式2 抽象工厂模式3 单例模式行为型模式1 观察者模式2 模板模式结构型模式1 代理模式创建型模式1 工厂模式主要解决接口选择的问题:将同一类对象的创建过程,转移到一个工厂类实现在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象// 1.创建接口public interface Shape { void draw();}// 2.创建接口的实现类public class Rectangle implements

2022-03-23 20:59:59 654

原创 在线教育后端开发项目总结

文章目录一 持久化工具1 MyBatis2 Spring Data JPA3 Spring Data MongoDB二 数据库1 MySQL2 MongoDB3 Redis三 响应格式与异常处理1 响应格式2 异常处理一 持久化工具1 MyBatis用于写相对复杂(需要多表连接的) SQL 命令使用时,用 @Mapper 注释接口,在接口中定义方法,并创建同名的 xml 文件,在方法对应的标签存放 SQL 命令更多关于 MyBatis2 Spring Data JPASpring 提供

2022-03-19 16:58:47 761

原创 后端学习 - Redis

文章目录一 Redis 概述二 常用数据类型1 String2 Hash3 List一 Redis 概述属于一种 NoSQL(非关系型数据库),另一种常用的非关系型数据库是 MongoDBRedis 的数据都在内存中,并且支持持久化,主要用作备份恢复除了支持简单的 key-value 模式,还支持多种数据结构的存储: string、list、set、hash、zset 等,这些数据类型都支持 push / pop、add / remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性

2022-03-16 22:15:17 1174

原创 后端学习 - MyBatis

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的 持久层框架文章目录一 MyBatis 的搭建(基于配置文件)一 MyBatis 的搭建(基于配置文件)创建 maven 工程,引入依赖在 src/main/resources 目录下创建核心配置文件 mybatis-config.xml:核心配置文件主要用于配置连接数据库的环境,以及 MyBatis 的全局配置信息(整合 Spring 之后,配置文件可以省略)<?xml version="1.0" encoding="

2022-02-24 12:00:35 707

原创 后端学习 - JVM(上)内存与垃圾回收

文章目录一 JVM1 简介一 JVM1 简介Java 是跨平台的语言:一次编写,到处运行JVM 是跨语言的平台:JVM 是面向字节码文件的,只要符合 JVM 规范,JVM 不仅可以处理 Java 语言编译的字节码文件,还支持其它语言编译的字节码文件JVM 本质上是二进制字节码的运行环境,是运行在操作系统上的,与硬件没有直接的交互.........

2022-02-16 10:46:12 957

原创 后端学习 - SpringBoot

SpringBoot 是整合 Spring 技术栈的一站式框架,是简化 Spring 技术栈的快速开发脚手架约定大于配置文章目录一 第一个 SpringBoot 项目一 第一个 SpringBoot 项目导入 maven 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-pare.

2022-02-07 13:34:35 895

原创 后端学习 - SpringMVC

文章目录一 SpringMVC 简介1 MVC2 SpringMVC一 SpringMVC 简介1 MVCModel 模型层:工程中的 JavaBean,包含实体 Bean(Customer、Student…) 和 业务处理 Bean(Service、DAO)View 视图层:指工程中的 html 或 jsp 等页面,与用户进行交互,展示数据Controller 控制层:指工程中的 servlet,作用是接收请求和响应浏览器MVC 的工作流程 View <—> Controller

2022-01-29 10:58:21 1202

原创 后端学习 - JavaWeb

文章目录一 HTML1 网页的组成部分2 HTML 概述3 HTML 标签4 常用标签5 表单与表单的提交二 CSS1 语法格式2 使用方法一 HTML1 网页的组成部分内容(结构):在页面中可以看到的数据。我们称之为内容。一般使用 HTML 技术展示。表现:内容在页面上的展示形式,比如布局,颜色,大小等等。一般使用CSS 技术实现。行为:页面中元素与输入设备交互的响应。一般使用 JavaScript 技术实现。2 HTML 概述Hyper Text Markup Language (超

2022-01-18 11:15:42 429

原创 后端学习 - JDBC

文章目录一 JDBC概述1 Java中的数据存储技术2 什么是JDBC3 JDBC程序的编写步骤一 JDBC概述1 Java中的数据存储技术JDBC(Java Database Connectivity)直接访问数据库;JDO(Java Data Object)技术;第三方工具,如Hibernate, Mybatis 等。后两种本质上是更好地封装了JDBC。2 什么是JDBC独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java

2022-01-15 09:54:12 725

原创 后端学习 - Spring5

文章目录一 简介二 IOC1 底层原理2 实现过程3 Spring 实现 IOC 的两个接口二 IOC 的 Bean 管理(XML)1 创建对象2 使用 set 方法注入属性3 通过有参构造器实现属性注入一 简介Spring 是轻量级的开源的 JavaEE 框架Spring 有两个核心部分:IOC(Inversion of Control,控制反转) 和 AOP(Aspect Oriented Programming,面向切面编程)IOC 是一种设计思想,核心是,将设计好的对象交给容器控制,而不

2022-01-09 23:48:41 1161

原创 后端学习 - RabbitMQ

文章目录一 基本概念二 核心模式1 工作队列模式(Work Queue)2 发布/订阅模式(Publish / Subscribe)3 路由模式(Routing)三 RabbitMQ 消息机制1 消息应答 & 重新入队2 预取值3 持久化4 发布确认四 交换机1 Fanout2 Direct3 Topics一 基本概念消息队列的主要功能:流量削峰、应用解耦、异步处理四个基本概念生产者:产生数据、发送消息的程序交换机:接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道

2022-01-07 23:01:25 299 1

原创 后端学习 - 并发编程

文章目录一 进程与线程1 区别与联系2 Java内存区域二 并发与并行三 线程的生命周期与状态四 上下文切换五 线程死锁1 产生死锁必须具备的四个条件2 预防死锁六 并发编程的相关方法1 sleep() 与 wait()2 run() 与 start()3 join()4 线程创建的四种方法5 获取与设置优先级七 synchronized 关键字1 简介2 使用方法3 注意事项八 volatile 关键字1 作用2 双重校验锁实现 单例模式(线程安全)3 与 synchronized 的关系九 Lock十

2022-01-06 10:28:39 213 1

原创 后端学习 - 容器

文章目录一 简介二 底层数据结构总结1 List2 Set3 Queue4 Map三 Collection 的子接口 List1 ArrayList 与 Vector2 ArrayList 与 LinkedList一 简介Java容器可大致分为List、Queue、Set、Map四种。List:存储的元素是有序的、可重复的。Set:存储的元素是无序的、不可重复的。Queue:按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。Map:使用键值对(key-value)存储,类似于数学上

2022-01-05 18:36:11 389

原创 后端学习 - 基础 &《Java编程的逻辑》读书笔记

文章目录一 基础概念1 有关Java2 JVM / JDK / JRE3 与C++的联系和区别二 Java语法1 各类型数据占用空间大小2 可变长参数3 静态方法与实例方法4 重载和重写5 泛型6 == 和 equals() 的区别7 hashCode() 方法8 包装类型9 final 关键字10 Java的参数传递机制11 String 的内存情况12 lambda 表达式三 Java的面向对象1 面向过程与面向对象2 对象与对象引用3 构造方法4 封装、继承、多态5 StringBuffer 与 St

2022-01-04 11:30:38 522

原创 数据结构 - 最小堆&最大堆

可以在O(nlogn)的时间复杂度内完成排序。典型的用法是,寻找 第k个/前k个 最大/最小元素,k个有序序列合并。文章目录1.合并K个升序链表(最小堆实现)2.前K个高频元素1.合并K个升序链表(最小堆实现)或许可以改进成每次堆只存放K个元素?# Definition for singly-linked list.# class ListNode(object):# def __init__(self, val=0, next=None):# self.val =

2021-11-22 16:30:34 369

原创 数据结构 - 单调栈、单调队列

单调栈基本只处理NGE问题(Next GreaterElement)。对序列中每个元素,找到下一个比它大的元素。(“下一个”可以换成“上一个”,“大”也可以换成“小”)每日温度请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。class Solution(object): def dailyTemperatures(self, T): """ :type T: .

2021-11-22 10:50:13 164

原创 算法 - 前缀和

记录在做hot100时遇到的前缀和的题目。目前见过的题目,都是前缀和结合其它的方法一起使用:用于求取一段连续路径的和(最大值/最小值/目标出现次数)。需要注意的是,前缀和的判定方法是node2.val-node1.val == target,不要搞错顺序。文章目录1.路径之和III2.和为 K 的子数组1.路径之和III在数据结构-二叉树记录过,此处单独拿出来。给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目

2021-11-22 10:44:06 300

原创 算法 - 动态规划

动态规划是一种自底向上的算法,通常用于解决最大、最小等最值问题。能使用动态规划解决的问题,一定具备:重叠子问题:和暴力搜索不同,需要记录子问题的解,避免重复求解(剪枝)最优子结构:子问题达到最值,整体才能达到最值,即以小见大状态转移方程:在每个“状态”做出的“选择”会到达什么“状态”然后就以合适的顺序填表,穷举所有情况并求最值即可。整体流程:明确 base case -> 明确「状态」-> 明确「选择」 -> 定义 dp 数组/函数的含义。...

2021-11-11 15:45:09 220

原创 算法 - DFS/BFS

DFS和BFS本质上是决策树的遍历

2021-11-08 11:05:11 101

原创 数据结构 - 二叉树

二叉树的遍历思想在很多算法中体现。快速排序的本质是二叉树的先根遍历,归并排序和分治算法本质是后根遍历。文章目录1.翻转二叉树2.填充二叉树节点的右侧指针3.将二叉树按先根顺序展开成链表(即只有右子节点的树)1.翻转二叉树写递归函数时首先确定递归出口。本题可以使用先根遍历,也可以使用后根遍历。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None,

2021-10-19 16:55:03 76

原创 数据结构 - 概述

存储方式数据结构的存储方式只有顺序存储(对应数组)、链式存储(对应链表)两种。所有上层的数据结构,如树、堆、栈等,存储方式均属于以上两种。顺序存储的优势是支持随机访问,缺点是需要连续的存储空间,扩容、插入、删除的时间复杂度都是O(N)。链式存储不支持随机访问,不需要扩容,插入和删除的时间复杂度都是O(1),需要额外的空间存储指针。遍历方法数据结构的遍历方法只有线性(迭代)和非线性(递归)。数据结构的存在目的、选择方式一切为了实现高效的增删改查。...

2021-10-18 15:24:19 23

原创 数据结构 - 链表

题目描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。解答思路最直观的想法是,遍历链表求出长度,创建空数组,再遍历链表将每个节点的值反向填进数组。递归解法很简洁,思路类似于树的后根遍历(先根->递归过程自顶向下,后根->递归过程自底向上),从想象一棵单叉的树(其实就是链表),叶节点向根节点前进,就能得到反向的顺序。# -*- coding:ut

2021-10-15 16:52:05 65

原创 吴恩达DeepLearningCourse5-序列模型

终于在八月末学完了这门课程,这个月虽然为此不停地忙碌,但每天都在进步也是一种乐趣。吴恩达教授的课程循序渐进,适合初学者,非常感谢他的辛苦付出。文章目录第一周:循环序列模型循环神经网络(RNN)模型语言模型和序列生成GRU(门控循环单元)LSTM(长短期记忆)双向循环神经网络/BRNN深层RNN第二周:自然语言处理与词嵌入词汇表征使用词嵌入词嵌入的特性嵌入矩阵学习词嵌入:Word2Vec 的 skip-gram模型负采样GloVe 词向量情感分类问题消除词嵌入中的歧视:以性别为例第三周:序列模型和注意力

2020-08-27 12:42:05 85 2

原创 吴恩达DeepLearningCourse4-卷积神经网络

部分内容参考之前的笔记 PyTorch深度学习实践文章目录第一周:卷积神经网络边缘检测Padding、Stride三维卷积卷积神经网络中的一层池化层第二周:深度卷积网络实例探究残差网络1x1卷积Inception模块和网络卷积神经网络的迁移学习第三周:目标检测目标定位基于滑动窗口的目标检测滑动窗口的卷积实现Bounding Box 预测 /YOLO算法基础交并比 loU非极大值抑制Anchor Boxes第四周:特殊应用——人脸识别和神经风格转换One-Shot学习Siamese 网络Triple

2020-08-22 14:44:40 122

原创 吴恩达DeepLearningCourse3-结构化机器学习项目

文章目录第一周:机器学习策略1正交化单一数字评估指标满足和优化指标训练/开发/测试集机器学习和人的表现第二周:机器学习策略2进行误差分析修正标注错误的数据使用来自不同分布的数据进行训练和测试数据分布不匹配时的偏差与方差的分析处理数据分布不匹配问题迁移学习多任务学习端到端的深度学习第一周:机器学习策略1正交化需要正交化的四个标准-训练集的表现:训练更大的神经网络、使用优化算法-开发集的表现:正则化、使用更大的训练集-测试集的表现:使用更大的开发集-真实应用中的表现:改变开发集或成本函数单一数字

2020-08-21 09:24:04 66

原创 吴恩达DeepLearningCourse2-改善深层神经网络:超参数调试、正则化以及优化

文章目录第一周:深度学习的实用层面训练、开发、测试集偏差、方差机器学习基本步骤L2正则化Dropout(随机失活)正则化其它正则化方法正则化输入神经网络的权重初始化梯度检验第二周:优化算法Mini-Batch梯度下降法指数加权平均指数加权平均的偏差修正动量梯度下降法RMSpropAdam优化算法学习率衰减第三周:超参数调试、Batch正则化、程序框架调试处理为超参数选择合适的范围Batch Norm/z的归一化处理Batch Norm作用的原理SoftMax回归第一周:深度学习的实用层面训练、开发、测试

2020-08-16 23:00:44 90

原创 吴恩达DeepLearningCourse1-神经网络和深度学习

计划在9月4日(截止日期)之前完成DeepLearning的所有课程学习。每个课程对应一篇博客,根据学习进度随时更新。

2020-08-05 10:55:09 154

吴恩达机器学习实验及解答

使用Octave完成,包含原题目的压缩包(从Coursera官方课程下载的原版)和必做部分所有满分解答,必要部分附有注释,可供参考。

2020-10-09

空空如也

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

TA关注的人

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