Pytorch学习笔记
A typical training procedure for a neural network is as follows:
(神经网络的典型训练过程如下:)
Define the neural network that has some learnable parameters (or weights)
(定义具有一些可学习参数(或权重)的神经网络)
Iterate over a dataset of inputs
(遍历输入数据集)
Process input through the network
(通过网络处理输入)
Compute the loss (how far is the output from being correct)
(计算损失(输出与正确目标的距离))
Propagate gradients back into the network’s parameters
(将梯度传播回网络参数)
Update the weights of the network, typically using a simple update ru ...
神经网络编程基础(Basics of Neural Network programming)
2.1 二分类(Binary Classification)逻辑回归是一个用于二分类(binary classification)的算法。首先我们从一个问题开始说起,这里有一个二分类问题的例子,假如你有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。
符号定义
$ x$:表示一个$ n_x$维数据,为输入数据,维度为$ (n_x,1)$;
$ y$:表示输出结果,取值为$ (0,1)$;
$ (x^{(i)},y^{(i)})$:表示第$ i$组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;
$ X = [x^{(1)},x^{(2)},…,x^{(m)}]$:表示所有的训练数据集的输入值,放在一个 $ n_x \times m$的矩阵中,其中$ m$表示样本数目;
$ Y = [y^{(1)},y^{(2)},…,y^{(m)}]$:对应表示所有训练数据集的输出值,维度为$ 1 \times m$。
用一对$ (x,y)$来表示一个单独的样本,$ x$代表$ n_x$维的特征向量, $ y$表示标 ...
Python中的广播
广播是一种手段,可以让你的python代码段执行得更快。
1
将一个4 x 1向量和一个数字相加,Python会自动将这个数字展开变成一个1 x 4向量
\left[ \begin{matrix} 1 \\ 2 \\ 3 \\ 4 \end{matrix} \right] + 100 =
\left[ \begin{matrix} 1 \\ 2 \\ 3 \\ 4 \end{matrix} \right] + \left[ \begin{matrix} 100 \\ 100 \\ 100 \\ 100 \end{matrix} \right] =
\left[ \begin{matrix} 101 \\ 102 \\ 103 \\ 104 \end{matrix} \right]这种广播,对列向量和行向量一样
2
将一个2 x 3矩阵加上一个1 x 3矩阵,Python会把第二个矩阵复制两次,变成2 x 3矩阵,然后让它们相加
一般情况下,将m x n矩阵加上1 x n矩阵,Python会复制1 x n矩阵m次,把它变成m x n矩阵,然后让它们相加
\left[ \b ...
PyInstaller打包python程序遇到的问题
1、pyinstaller使用PyInstaller命令行选项可以通过帮助信息查看:pyinstaller --help
-y | --noconfirm:直接覆盖输出文件,而无需提示,在多次重复运行命令时可避免反复确认。-D | --onedir:生成包含执行文件的目录(默认行为)。-F | --onefile:生成单一的可执行文件,不推荐使用。-i | --icon [.ico | .exe | .icns]:为 Windows/Mac 平台的执行文件指定图标。--version-file [filename]:添加文件版本信息。-c | --console | --nowindowed:通过控制台窗口运行程序 并且分配标准输入/输出,(默认行为)。-w | --windowed | --noconsole:不创建控制台窗口,也不分配标准输入/输出,主要用来运行 GUI 程序。没有输入输出会给调试带来一定困难,因此即便是 GUI 程序,建议在调试时禁用本选项,在最终发布时再打开。
2、PyInstaller规格文件PyInstaller 在生成文件的同时会创建一个相应的.spec ...
OpenCV学习
介绍
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
我是在bilibili上看《Python 人脸识别——尚学堂》视频,接触到的OpenCV,接下来是学习的内容。
1、导入OpenVC模块,读取图片
1234567#导入模块import cv2 as cv#读取图片 #img是一个numpy.ndarray对象,默认是以BGR三通道读取图片数据(三维数组)img=cv.imread('test.jpg') #路径不能有中文#以灰度图像方式读取图片数据(二维数组)img_gray = cv2.imread("test.jpg",cv2.IMREAD_GRAYSCALE)
2、将图片进行灰度转换
12#将其转换为灰度的二维数组数据gray_img=cv.cvt ...
springboot整合druid
Druid 是一个用 Java 编写的面向列的开源分布式数据存储。 Druid 被设计来快速摄取大量事实数据,并在数据之上提供低延迟查询。Druid 这个名字来自于许多角色扮演游戏中的变形德鲁伊类角色,以反映系统架构可以迁移到解决不同类型的数据问题的特性。 Druid 通常用于商业智能 / OLAP 应用程序,以分析大量的实时和历史数据。
(Druid读音 英:[ˈdruːɪd] 美:[ˈdruːɪd])
Druid可以做什么?1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和Jd ...
Hexo
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
介绍安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
123$ hexo init <folder>$ cd <folder>$ npm install
新建完成后,指定文件夹的目录如下:
12345678.├── _config.yml├── package.json├── scaffolds├── source| ├── _drafts| └── _posts└── themes
_config.yml
网站的 配置 信息,您可以在此配置大部分的参数。
package.json
应用程序的信息。
scaffolds
模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。
Hexo的模板是指在新建的markdown文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包 ...
Git
Git学习笔记:廖雪峰的官方网站
创建版本库初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
使用命令git add <file>,注意,可反复多次使用,添加多个文件;
使用命令git commit -m <message>,完成。
版本回退3个概念,工作区(Working Directory),暂存区(index /stage),本地仓库(Repository)
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
git diff:是查看工作区与暂存区的差别的。
git diff -- cached:是查看暂存区与仓库的差别的。
git diff HEAD:是查看工作区和仓库的差别的。其中:HEAD代表的是最近的一次commit的信息。
HEAD指向的版本就是当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
因此,Git允许我们在版本 ...
JPA使用@Query注解实现update
JPA使用@Query注解实现update在做项目中,遇到的用JPA更新数据库问题
用jpa中的save()方法,更新全部字段时会正常实现,可是在只更新部分字段时,会发现没有更新的字段被置为null。
可以通过使用@Query注解来解决。
HQL语句123456789import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;import org.springframework.transaction.annotation.Transactional; @Modifying @Transactional @Query(value = "update MedicalSteelPlate msp set msp.shelfNumber= :shelfNumber, msp.type= :type ...