学习深度学习与图像处理中的一些感悟(1)
缘起
四年前读研究生的时候做的方向就是图像识别,如此想来都过了很久了,但是毕业的时候都感觉没有入门。参加工作后,工作内容和图像无关了,晚上回来无聊看一看了竟然有了新的感触。更多是知道以前理解不透彻的原因。
上学时也看了很多理论的学习,有关传统图像的、数学方面推导的书的和视频,像西瓜书,李航的统计等等,还做了很多笔记,但是效果甚微,一到图像处理还是用matlab或者cv2库解决。后边反思原因,更多的是代码看太少、不熟悉框架、不注重动手实践!这三个原因其实也是阻碍我其他成果的因素。因此,从这周开始每周分享我学习到的好的代码,前期应该会比较初级,后续再慢慢深入!
#学会使用框架
做深度学习一定要利用好框架,如caffe,tensorflow,pytorch这些,要学会加速器如cuda的一些常用命令。下面展示做一个BP网络的代码。
当不使用框架时, 基于numpy库进行编写:
import numpy as np
# N是批量大小; D_in是输入维度;
# 49/5000 H是隐藏的维度; D_out是输出维度。
N, D_in, H, D_out = 64, 1000, 100, 10
# 创建随机输入和输出数据
x = np.random.randn(N, D_in)
y = np.random.randn(N, D_out)
# 随机初始化权重
w1 = np.random.randn(D_in, H)
w2 = np.random.randn(H, D_out)
learning_rate = 1e-6
for t in range(500):
# 前向传递:计算预测值yh = x.dot(w1)h_relu = np.maximum(h, 0)y_pred = h_relu.dot(w2)
# 计算和打印损失lossloss = np.square(y_pred - y).sum()print(t, loss)
# 反向传播,计算w1和w2对loss的梯度grad_y_pred = 2.0 * (y_pred - y)grad_w2 = h_relu.T.dot(grad_y_pred)grad_h_relu = grad_y_pred.dot(w2.T)grad_h = grad_h_relu.copy()grad_h[h < 0] = 0grad_w1 = x.T.dot(grad_h)
# 更新权重w1 -= learning_rate * grad_w1w2 -= learning_rate * grad_w2
但其实这仅仅是一个简单的BP网络,如果使用pytorch框架的话就简单三行就可以实现一样的效果。
做好深度学习中理论学习
以前觉得传统图像处理和深度学习在处理过程中关系不大,但是又有很多相连的地方,例如传统图像中一些用来提取边缘的算子和深度学习中的卷积就很像;理解深度学习的关键还是要从BP神经网络入手,至少在BP维度时可以有严谨的数学推导,理解反向传播的意义;优化一个模型最关键的是需要明确自己的目标函数,例如在图像分类中就是交叉熵损失,在回归中就是对IOU系列的最大化;
今天就先讲到这里,网上的理论很多,还是多发一些自己的理解,希望可以和大家共同讨论,一块进步!
学习深度学习与图像处理中的一些感悟(1)相关推荐
- 最新版动手学习深度学习和GAN电子书免费下载!
今天给大家推荐一个GAN方面的优质公众号---机器学习与生成对抗网络.该公众号里分享了几本深度学习.GAN等好的电子书资源! 强烈推荐李沐等人的<动手学习深度学习>最新版!完整中文版 PD ...
- 【杂谈】如何在言有三本人的随时答疑下, 长期而系统地学习深度学习和计算机视觉,这是有三AI的完整计划...
对深度学习从业者要说的话 深度学习的前身是神经网络,属于机器学习技术中的一种,诞生于半个多世纪以前,随着计算硬件水平的提升,工业大数据的积累以及相关理论的完善,如今得以在各行各业大展拳脚.从应用领域来 ...
- 【杂谈】2020年如何长期、系统,全面地学习深度学习和计算机视觉,这是有三AI的完整计划...
对深度学习从业者要说的话 深度学习的前身是神经网络,属于机器学习技术中的一种,诞生于半个多世纪以前,随着计算硬件水平的提升,工业大数据的积累以及相关理论的完善,如今得以在各行各业大展拳脚.从应用领域来 ...
- 水很深的深度学习--深度学习概述
深度学习概述 人工智能 人工智能可以分成以下三类: 人工智能的三次浪潮 机器学习 机器学习的定义 机器学习的分类 深度学习 深度学习的定义 深度学习的分类 深度学习的起源与发展 深度学习的主要应用 人 ...
- 附pdf下载 | 动手学习深度学习和GAN电子书
今天分享几本深度学习.GAN等好的电子书资源!推荐收藏! 如今,生成对抗网络GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 ...
- 深度学习 免费课程_深入学习深度学习,提供15项免费在线课程
深度学习 免费课程 by David Venturi 大卫·文图里(David Venturi) 深入学习深度学习,提供15项免费在线课程 (Dive into Deep Learning with ...
- 浅谈如何学习深度学习(经验之谈,仅供参考)
浅谈如何学习深度学习 方向 书籍 视频 方向 首先,要选择一个感兴趣的方向,或者说是将深度学习与自己的专业.学校的优势学科相结合. 计算机视觉(数字图像处理.图像分类.目标检测.图像语义分割.目标跟踪 ...
- 学习深度学习需要哪些知识_您想了解的有关深度学习的所有知识
学习深度学习需要哪些知识 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) Corona was a huge challenge for many ...
- 系统学习深度学习(四十一)--AlphaGo Zero强化学习原理
转自:https://www.cnblogs.com/pinard/p/10609228.html 本篇主要参考了AlphaGo Zero的论文, AlphaGo Zero综述和AlphaGo Zer ...
- 系统学习深度学习(三十八)--深度确定性策略梯度(DDPG)
转自:https://www.cnblogs.com/pinard/p/10345762.html 1. 从随机策略到确定性策略 从DDPG这个名字看,它是由D(Deep)+D(Determinist ...
最新文章
- linux下如何安装rzsz
- ES6,新增数据结构Set的用法
- QT,C++多项式计算器—version3(厌倦CMD黑框框的走起!)
- 目标检测Workshop | COCO三连冠带你探索检测新世界
- SpringBoot 2.x 整合Lombok
- java -PDF添加文本水印与图片水印
- CUDA编程之快速入门-----GPU加速原理和编程实现
- [导入]从函数RND的使用想到的!
- bootstrap select下拉框模糊搜索和动态绑定数据解决方法
- jQuery动画效果之上卷下拉
- 【Android实战】----从Retrofit源码分析到Java网络编程以及HTTP权威指南想到的
- 我用unity开发的第一款游戏demo心得
- Android Wear 开发 (一),移动应用开发技术
- Bootstrap相关整理、免费主题整理
- 做ctf题目的时候运行程序就会显示ImportError: cannot import name ‘flag‘ from ‘secret‘ 求大佬解答
- Zero-Shot Learning学习笔记 -- CVPR_2022_MSDN: Mutually Semantic Distillation Network for Zero-Shot Learn
- word标题段前断后设置都为6磅,标题段前无效
- vertx使用路由步骤
- 首例 3次IPO:前2次申请科创板、创业板均撤回、第3次改为主板、难圆其说变更保代及券商……
- 最新版Google Chrome 自动加载flash插件的方法
热门文章
- 广西科技大学计算机专业分数,广西科技大学
- [高通SDM450][Android9.0]屏幕显示DPI可动态配置
- win10通过局域网共享文件夹
- 阿里巴巴,果然开始拥有“预测未来“的能力了
- cad转jpg怎样才能非常清晰?
- MATLAB红苹果提取(颜色分割)
- 寒亭5.8万亩盐碱稻 国稻种芯·中国水稻节:山东潍坊插秧期
- 模板数据tornado开发学习之2.输入输出,数据库操作,内置模板,综合示例
- 操作系统文件的逻辑结构及其文件目录
- 【银行业务】名词解释