关于我
😋 你好,我是林二毛
欢迎来到我的个人博客!欢迎你来到了林二毛的秘密基地。
🤔 为什么要做个人博客首先我一直认为,“最好的老师就是自己”。将自己的想法写成文章,我认为是一个非常高效的学习方法。在写文章的过程中,可以发现自己理解不足的地方,同时也锻炼了自己写文章的能力。
再者,我发现遇到自己不会的题目在主流平台上搜索解答真的是很痛苦,文章基本是你抄我我抄你,还有一些文章是五六年前的,已经失去了时效性,所以我想做一个自己的网站,免费分享我自己在学习过程里遇到的困难,希望可以帮助到其他人。
这个网站主要分享我自己在学习过程中遇到的问题,拿来与大家交流分享。偶尔也分享一些日常生活,欢迎关注~
🥳 关于我我来自浙江温州,现就读于杭州电子科技大学计算机系,是2022级大一新生。
对于任何事物都保有无限好奇。
💂 联系我吧
QQ:862813266
邮箱:862813266@qq.com
林二毛 编辑于 2023/5/25
未完待续….
(零)深度学习之引言
(零)深度学习之引言前言此篇由本人在学习深度学习过程中总结得出,仍在学习,多多包涵。接下来会开始写一系列的深度学习内容,既为了方便自己查询复习,也方便各位学习讨论。
学习内容主要来源于 -《动手学深度学习》
1. 什么是深度学习深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,是机器学习的一个子集,深度学习是“深度”的,模型学习了许多“层”的转换,他可以表示数据的低级细节,抽象出可以区分的概念,这使得深度学习方法优于普通的机器学习方法。深度学习不需要我们自己去提取特征,而是自动地对数据进行筛选,自动地提取数据高维特征。
深度学习是人工智能领域中一项重要的技术,它通过模拟人脑神经网络的结构和功能,实现了对数据的智能处理和分析。随着计算机计算能力的提升和大数据的涌现,深度学习在图像识别、语音识别、自然语言处理等领域取得了巨大的突破,成为推动人工智能发展的关键技术之一。
深度学习的核心是人工神经网络,它由多个神经元层组成,每个神经元层都与前后两层相连接。通过大量的训练数据和反向传播算法,神经网络能够自动学习数据中的特征 ...
小卖部日志
小卖部日志
2023.8.12
完成了SSL配置
2023.8.8
备案记录通过,可以使用 www.linermao.top 访问此网站
2023.7.29
购入腾讯云服务器,将原先托管在 Github 上的网页转移到 111.229.185.182 端口上。
2023.7.15
更名为 Linermao’s Kiosk
新增友链功能
2023.5.25
-Linermao’s Blog 正式成立,依托于 Github ,完成了网站的基本设置
小卖部更新计划书
小卖部更新计划书如果你看到了更新计划书中的内容还没有实现,速速戳我更新优化。
2023.8.10 (未完成)
增加中英切换按钮,并且文章按照中文于英文分别显示。
2023.7.6 (未完成)
更改加载界面动画
2023.7.6 (完成于 7.15)
增加友链功能
2023.7.6(未完成)
做一个更炫的 about me 页面
Learning Rust - 7 泛型,trait和生命周期
泛型,trait和生命周期1 泛型1.1 函数中的泛型对于两个内容一致,但接受参数类型不一致的函数,可以一个定义泛型版本的函数从而合并函数:
例1.1:fn largest_i32(list: &[i32]) -> &i32 { let mut largest = &list[0]; for item in list { if item > largest { largest = item; } } largest}fn largest_char(list: &[char]) -> &char { let mut largest = &list[0]; for item in list { if item > largest { largest = item; } } ...
Learning Rust - 6 错误处理
错误处理1 Result 处理可恢复的错误Result枚举类有以下两个成员:
例1.1:// T, E都是范型类参数enum Result<T, E> { Ok(T), Err(E),}
以打开文件为例例1.2:use std::fs::File;fn main() { let greeting_file_result = File::open("hello.txt"); let greeting_file = match greeting_file_result { Ok(file) => file, Err(error) => panic!("Problem opening the file: {error:?}"), };}
File::open的返回值是Result<T, E>,泛型参数T会被File::open的实现放入成功返回值的类型std::fs::File,这 ...
Learning Rust - 5 常见集合
常见集合1 Vectorvector允许在一个单独的数据结构中储存多于一个的值,它在内存中彼此相邻地排列所有的值。
vector只能储存相同类型的值。
创建 vector例1.1:// 创建一个vectorlet v: Vec<i32> = Vec::new();let v = vec![1, 2, 3]; // 使用 vec! 宏
更新 vector例1.2:let mut v = Vec::new(); // 注意可变性v.push(5);v.push(6);v.push(7);v.push(8);
读取 vector例1.3:let v = vec![1, 2, 3, 4, 5];let third: &i32 = &v[2]; // 使用索引println!("The third element is {third}");let third: Option<&i32> = v.get(2); // 使用 get 方法match third { Some(third) => ...
Learning Rust - 4 枚举与模式匹配
枚举与模式匹配1 枚举使用enum定义一个枚举类型,使用逗号分割开枚举的成员:
例1.1:enum IpAddrKind { V4, V6,}
使用如下方法创建枚举类型的不同成员的实例:
例1.2:fn main(){ let four = IpAddrKind::V4; let six = IpAddrKind::V6;}
在结构体中,可以使用枚举类型作为其字段类型:
例1.3:enum IpAddrKind { V4, V6,}struct IpAddr { kind: IpAddrKind, address: String,}fn main(){ let home = IpAddr { kind: IpAddrKind::V4, address: String::from("127.0.0.1"), }; let loopback = IpAddr { ...
Learning Rust - 3 结构体
结构体1 定义使用struct关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,称为字段(field)。
例1.1:struct User { active: bool, username: String, email: String, sign_in_count: u64,}
创建一个实例需要以结构体的名字开头,接着在大括号中使用key: value 键-值对的形式提供字段,其中key是字段的名字,value是需要存储在字段中的数据值。实例中字段的顺序可以与声明不一致。
例1.2:fn main() { let user1 = User { active: true, username: String::from("someusername123"), email: String::from("someone@example.com"), sign ...
Learning Rust - 2 所有权
所有权1 定义所有权(ownership)是Rust用于如何管理内存的一组规则。所有程序都必须管理其运行时使用计算机内存的方式。
一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。
Rust则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。
关于栈与堆的概念这里不再详解,在此有非常详细与形象的说明,读者自行学习。
访问栈数据的速度是更快的,但是会有一定的限制,所以合理的分配方法对于提升程序效率来说,是非常重要的。
https://kaisery.github.io/trpl-zh-cn/ch04-01-what-is-ownership.html
所有权遵循以下的规则:
每一个值都有一个所有者(owner)。
每一个值在任一时刻有且只有一个所有者。
当所有者(变量)离开作用域,这个值将被丢弃。
2 作用域作用域是一个项(item)在程序中有效的范围。
假设有这样一个变量:
fn main() ...