自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ford程的博客

Ford程的博客

  • 博客(27)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Sora学习(一):Sora技术路径整体认知

截止到2024年3月2日,Sora还未完全开放使用,只有内测,现有的中文互联网中所谓“带你玩转Sora”的AI付费课程都是纯纯割韭菜;Sora文生视频模型可谓是之前许多模型的集大成者,虽然没有公开太多技术细节,但我们可以学习到Sora背后所涉及的一系列模型架构和训练方法(如Transformor, Diffusion模型等);要训练一个多模态大模型(LMM),海量训练数据 + 优秀模型架构 + 算力资源都缺一不可,其中算力限制对中国公司发展人工智能提出了挑战;

2024-03-02 17:56:07 1076 1

原创 Transformer入门学习

摘要:记录一下自己在10月份参加DataWhale组队学习transformer的所得。这篇博客主要关于transformer基本原理的学习和一个输入序列转换的简单demo,并补充了一些transformer在CV领域的variants,希望本次组队学习能帮助自己快速入门,有机会将transformer用在透过散射成像或者PAM成像相关领域中。以下内容主要参照Datawhale开源资料《动手学CV-Pytorch》第六章,感谢DataWhale开源组织,也欢迎大家点进去多多学习~2017年谷歌在一篇名为A

2021-10-17 19:42:00 1865

原创 地标建筑物识别——Task4 评价函数与损失函数

前言:在Task4,我们学习语义分割的评价函数和各类损失函数,需要掌握常见的评价函数和损失函数Dice、IoU、BCE、Focal Loss、Lovász-Softmax,以及使用不同评价/损失函数进行模型训练。分类中的TP TN FP FN在讲解语义分割中常用的评价函数和损失函数之前,先补充一**TP(真正例 true positive) TN(真反例 true negative) FP(假正例 false positive) FN(假反例 false negative)**的知识。在分类问题中,我们

2021-03-02 00:27:05 398

原创 地标建筑物识别——Task3 语义分割模型发展

前言:该部分我们学习语义分割网络模型的发展:FCN 、SegNet、Unet、DeepLab、RefineNet、PSPNet、GAN 语义分割。语义分割(全像素语义分割)作为经典的计算机视觉任务(图像分类,物体识别检测,语义分割)。其结合了图像分类、目标检测和图像分割,通过一定的方法将图像分割成具有一定语义含义的区域块,并识别出每个区域块的语义类别,实现从底层到高层的语义推理过程,最终得到一幅具有逐像素语义标注的分割图像。学习目标掌握语义分割模型的原理和训练过程;掌握语义分割模型的发展脉络;掌握

2021-02-27 01:16:20 1507

原创 基于DMD实现透过多模光纤(MMF)的聚焦

前言在波前整形(WFS)领域,虽然LC-SLM能实现聚焦PBR系数 π4\frac{\pi}{4}4π​ 的相位调制,但其典型值仅为 100100100 Hz的低刷新率,导致无论是基于迭代的波前优化还是测TM实现透过复杂介质聚焦均较慢,从而限制了其应用场景。 相比之下,含大量数字微镜阵列的DMD具备高达23KHz的刷新率,其每个微镜都能在“ON”和“OFF”两种状态间切换,能提供聚焦PBR系数 12π\frac{1}{2\pi}2π1​ 的二元幅度调制。基于DMD的波前优化算法[1,2] 和传输矩阵™测量

2021-02-26 21:04:43 1197

原创 地表建筑物识别——Task02数据扩增

前言: Task2主要学习对语义分割任务中常见的数据扩增方法,并使用OpenCV 和albumentations 两个库完成具体的数据扩增操作。常见的数据扩增方法数据扩增是一种有效的正则化方法,可以防止模型过拟合,在深度学习模型的训练过程中应用广泛。数据扩增的目的是增加数据集中样本的数据量,同时也可以有效增加样本的语义空间。需注意:不同的数据,拥有不同的数据扩增方法;数据扩增方法需要考虑合理性,不要随意使用;数据扩增方法需要与具体任何相结合,同时要考虑到标签的变化;对于图像分类,数据扩增方

2021-02-24 00:00:50 632

原创 地表建筑物识别——Task01赛题理解

前言:这次参加Datawhale与天池联合发起的零基础入门语义分割之地表建筑物识别挑战赛。自己在大四上(2018下半年)也简单接触过语义分割,当时是基于FCN做CT图像乳腺肿瘤的分割。现在参加这个入门级赛事,主要是看看大佬们是怎么走一个完整的深度学习项目的,提升用深度学习在自己的科研方向(波前整形、散斑成像)等方面的应用能力。当然,学习常用语义分割模型(FCN、Unet、DeepLab、SegNet、PSPNet等),模型集成方法以及各种评价 / 损失函数是其中的核心内容。Task1:赛题理解与basel

2021-02-21 00:14:16 1576 3

原创 刷穿LeetCode——Task17

今天是刷题最后一天啦,感谢在科研压力很大下坚持业余刷算法题的自己(捂脸),感谢Datawhale的组织,没有每天未完成刷题打卡任务就会被抱出群的压力,我特么也坚持不下来(狗头)。哈哈还是有点骄傲的(撑腰)!344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[

2021-01-29 21:06:53 74

原创 刷穿LeetCode——Task16

这篇博客记录刷题第16天的学习心得。237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入:head = [4,5,1,9], no

2021-01-28 19:19:01 96

原创 刷穿LeetCode——Task15

这篇博客记录刷题第15天的学习心得与笔记。231. 2的幂给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false235. 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足

2021-01-28 01:43:14 95

原创 刷穿LeetCode——Task14

这篇博客记录刷题第14天的学习体会与心得。215. 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。217. 存在重复元素给定一个整数数组,判断是否存在重复元素。如

2021-01-25 14:17:35 75

原创 刷穿LeetCode——Task13

这篇博客记录刷题13天的学习心得。160.相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表

2021-01-25 01:56:06 114 1

原创 刷穿LeetCode——Task12

这篇博客记录刷题第12天的解题过程与学习所得。146. LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在

2021-01-23 11:40:18 107 2

原创 刷穿LeetCode——Task11

这篇博客记录刷题第11天的学习心得与收获。136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1示例 2:输入: [4,1,2,1,2] 输出: 4141.环形链表给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表

2021-01-23 00:47:47 78

原创 刷穿LeetCode——Task10

这篇博客记录刷题第10天的学习所获。121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要

2021-01-22 01:34:57 85

原创 刷穿LeetCode——Task09

这篇博客记录刷题第9天的解题心得与所学知识。88. 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,

2021-01-21 01:57:50 96

原创 MATLAB如何尽量避免for循环?

我们知道MATLAB擅长矩阵计算,但对于跑for循环非常低效,因此在内存足够的情况下应尽量写成矩阵或者向量化操作的形式,善用更好的数据结构、算法,以及matlab自带的函数特性,以尽可能避免for循环降低运行速度。下面是我学到的一些小tips,并结合运算示例进行讲解。方法1:优化循环内部运算及嵌套例如:将计算量小、循环次数多的放在里面,计算量大循环次数少的放在外面做大循环;将表达式尽可能向量化计算好后再放入循环内,减少循环內部运算;方法2:多线程并发替代单循环for i = 1 : 100

2021-01-20 01:31:28 8944 2

原创 刷穿LeetCode——Task08

这篇博客记录刷题第8天的解题思路与心得。64.不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7 输出:28示例 2:输入:m = 3, n = 2 输出:3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -&

2021-01-20 00:25:51 93

原创 刷穿LeetCode——Task07

这篇博客记录刷题第6天的思路与心得。54. 螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出:[1,2,3,6,9,8,7,4,5]示例 2:输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出:[1,2,3,4,8,12,11,10,9,5,6,7]

2021-01-19 00:37:33 85

原创 刷穿LeetCode——Task06

这篇博客记录刷题第6天的思路与心得。43. 字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3” 输出: “6”示例 2:输入: num1 = “123”, num2 = “456” 输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是

2021-01-18 01:12:27 117

原创 刷穿LeetCode——Task05

这篇博客记录第5天刷题的思路和收获。23.合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [1->4->5, 1->3->4, 2->6 ] 将它们合并到一个有序链表中得到。 1->1->2->3->4->4->5

2021-01-15 13:47:05 134

原创 刷穿LeetCode——Task04

这篇博客记录第4天刷题的思路。16. 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3 <= nu

2021-01-15 02:17:39 97

原创 刷穿LeetCode——Task03

这篇博客记录第3天刷题的解题思路与心得体会。11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水

2021-01-14 00:52:08 69

原创 刷穿LeetCode——Task02

这篇博客记录第2天解题思路。07. 整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <

2021-01-13 02:09:41 96

原创 刷穿LeetCode——Task01

刷穿LeetCode——Task01报名了DataWhale的LeetCode编程实践的组队学习,每天3道题,这篇博客记录Task01。02. 两数相加给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465

2021-01-12 01:11:44 128

原创 闪耀光栅 (DMD) 的衍射效应

摘要这篇博客主要介绍DMD作为闪耀光栅的衍射效应。首先我们介绍单缝衍射、多缝衍射和光栅方程,然后讨论闪耀光栅,最后仿真给出不同入射角下的闪耀判据和光栅光谱的二维模拟。DMD微镜翻转状态现在wavefront shaping (WFS) 的实验多采用数字微镜阵列(DMD),可用于快速波前整形。DMD是一种二元衍射光学元件,本质是个反射型闪耀光栅,可用于振幅的周期性调制。以DLP7000[1]芯片为例,其1024×7681024\times7681024×768的微镜阵列相对flat state可翻转 ±

2020-06-08 13:28:16 19740 31

原创 矩阵对角化,SVD分解

- [矩阵对角化](#矩阵对角化)- [SVD分解](#svd分解)- [参考链接](#参考链接)矩阵对角化矩阵的相似设 A\boldsymbol{A}A、 B\boldsymbol{B}B 为两个nnn阶矩阵,若存在可逆矩阵 P\boldsymbol{P}P,使得P−1AP=B\boldsymbol{P}^{^{-1}}\boldsymbol{A}\boldsymbol{P...

2019-09-20 12:18:39 5412

西电高西全《数字信号处理》PPT版课后答案+搜集的期末试卷

该压缩文档包括西电高西全的《数字信号处理》PPT版课后答案,以及本人备考时从百度文库,CSDN等平台搜集的5份期末试卷(北邮)或复习题。相信能极大帮助你的备考!

2018-11-18

深度学习入门:基于Python的理论和实现(日作中译原版pdf+配套程序,2018年7月上市)

1.日本深度学习入门经典畅销书,原版上市不足2年印刷已达100 000册。长期位列日亚“人工智能”类图书榜首,超多五星好评。 2.使用Python 3,尽量不依赖外部库或工具,从零创建一个深度学习模型。 3.示例代码清晰,源代码可下载,需要的运行环境非常简单。读者可以一边读书一边执行程序,简单易上手。 4.使用平实的语言,结合直观的插图和具体的例子,将深度学习的原理掰开揉碎讲解,简明易懂。 5.使用计算图介绍复杂的误差反向传播法,非常直观。 6.相比AI圣经“花书”,本书更合适入门。 内容提要:本书是深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术。书中使用Python 3,尽量不依赖外部库或工具,带领读者从零创建一个经典的深度学习网络,使读者在此过程中逐步理解深度学习。书中不仅介绍了深度学习和神经网络的概念、特征等基础知识,对误差反向传播法、卷积神经网络等也有深入讲解,此外还介绍了学习相关的实用技巧,自动驾驶、图像生成、强化学习等方面的应用,以及为什么加深层 可以提高识别精度等“为什么”的问题。 本书适合深度学习初学者阅读,也可作为高校教材使用。

2018-11-18

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

TA关注的人

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