自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线性规划总结

线性规划模型一般模型注:等式约束中的决策变量要求非负数,而不等式约束中的决策变量时自由的。标准模型引入冗余的决策变量,使得不等式约束转化为等式约束。这里的每个决策变量都具有非负性。把上述模型用矩阵表示就是min(or max)CTXs.t AX=b⃗ X≥0min(or\ max) C^TX\\s.t \ AX=\vec{b}\\\ X \ge...

2020-03-12 18:11:47 5762

原创 windows改键软件——sharpkeys

windows改键

2022-09-03 22:08:10 7789 1

原创 python第三方库之pretty_errors——美化traceback 报错信息

Python 第三方库——pretty_errors实现对traceback的高亮和美化

2022-08-22 20:46:09 993

原创 docker desktop 阿里云镜像加速

由于众所周知的原因,国内上docker hub等网站的速度感人。为了节约宝贵的科研时间,配置docker加速通道很重要。国内的镜像加速通道有网易、中科大、阿里等。但是经过实测,只有阿里的加速效果最好。下面就是具体教程啦。每个人都有不同的镜像加速地址。点击下面的地址获取自己的专属地址。https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors复制地址后,打开docker desktop,点击设置。修改这个框框里的内容。在reg

2022-06-17 22:14:19 2903

原创 torch.backends.cudnn.benchmark有什么用?

torch.backends.cudnn.benchmark有什么用?针对网络模型固定、输入参数固定的场景,将上述变量设置为True可以增加训练效率。cuDNN是英伟达为深度神经网络(DNN)设计的GPU加速库,针对卷积等操作进行了很多优化,Pytorch等深度学习框架会使用cuDNN加速。卷积有多种实现方式,每种卷积算法都有特定的优势。一种简单的优化方式是针对神经网络中不同的层使用不同的卷积实现方式。决定了每层最快的实现方式后,在运行整个网络就会提升算法效率。将上面的值设置为True,Pytorc

2022-03-25 15:33:35 4121

原创 使用numpy实现PCA降维

import numpy as npfrom sklearn.decomposition import PCA as Pclass PCA(): # n_components:保留主成分的个数 def __init__(self, n_components): self.n_components = n_components # X是初始数据,d行n列,n个d维向量,每列是一个向量 def fit(self, X):

2021-11-19 11:36:40 2111

原创 MATLAB基础语法复习

矩阵(包括向量)是MATLAB中的基本操作对象。创建矩阵% 创建矩阵% 不同的列使用空格或者都好分隔a = [1 2 3 4]a = [1,2,3,4]% 不同的行用分号分隔a = [1 2;3 4]% 使用函数创建矩阵% 创建一个2 * 2 的全0矩阵a = zeros(2)a = rand(2)a = ones(2)% 创建等间距向量% start : step : stopa = 1 : 3 : 7% 缺省步长是1a = 1:5...

2021-09-15 16:27:06 227

原创 复习基础排序算法

排序是最基本,最重要的任务之一,本文总结了常见的几种基础排序算法。以下都假设排序后的数组是升序的。leetcode题目地址:https://leetcode-cn.com/problems/sort-an-array/冒泡排序思路:依次比较相邻的元素,如果有逆序对,则交换相邻元素。每扫描一趟,就能找到当前无序部分的最大元素,并将其放到末尾。n趟扫描后,就完成了排序。时间复杂度:O(n2n^2n2)空间复杂度:O(1)class Solution: def sortArray(sel

2021-05-11 17:36:07 110 1

转载 python argparse用法总结——命令行参数解析

https://www.jianshu.com/p/a41fbd4919f8

2021-02-22 08:49:17 134

原创 pygame最小开发框架

pygame 最小开发框架导入相关库:pygame和sys初始化init()以及设置。逐类获取事件并响应。刷新屏幕。代码#导入相关库import pygameimport sysdef helloWorld(): #初始化以及相关设置 pygame.init() screen = pygame.display.set_mode((600, 400)) #设置窗口的宽度与高度 pygame.display.set_caption("pygame游戏

2021-02-14 08:55:04 129

原创 torch教程——迁移学习

简单来说,迁移学习就是把一个领域学到的知识,应用到另一个领域。举例来说,如果我们的任务是图片分类问题,假设分成10类。那么随机的正确率是10%,某个神经网咯经过一定的训练,正确率达到了20%(这比随机的效果好一些),我们就说该神经网络学到了知识!事实上,我们在生活中也常常应用迁移学习的知识。比如还在上中学的时候,我们会根据当前的处境推断大学生的生活,中学生和大学生都会写作业,都会学习新知识……。也许会有推断错误的地方,但这总比一无所知好。微调初始化神经网络时,可以随机初始化,即从头开始训练,也可以用

2021-01-15 16:37:07 711

原创 torch教程——数据加载和处理

前面训练神经网络,我们使用了torch内置的dataset类作为数据类。这种方法用来做一些demo不错,但是实际应用中需要自定义数据类。下载数据集https://download.csdn.net/download/weixin_42708161/14156096下载后解压此压缩包,并将其存储到"data/faces"的目录中。这个数据集包含了各种面部姿态,已经手工标注的关键点。数据集存放在一个csv中,每一行是一个数据。img_namepoint0_xpoint0_ypoint1

2021-01-14 10:06:12 1198

原创 torch教程——数据并行处理

pytorch的优点之一是可以使用GPU加速,但是默认情况下,只会使用一个GPU。本文内容是如果使用多个GPU并行运算。代码import torchimport torch.nn as nnfrom torch.utils.data import Dataset, DataLoaderinput_size = 5output_size = 2batch_size = 30data_size = 100#设备device = torch.device("cuda:0" if torc

2021-01-13 08:45:57 1307

原创 torch教程——使用GPU运行神经网络

CPU运行神经网络较慢,可以使用GPU加速。安装cuda版本的to安装教程demo导入torch库以后,调用下面的函数,如果打印True就说明安装成功。import torchprint(torch.cuda.is_available())定义一个cuda设备device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")print(device)将网络的参数设置为cuda张量net = Net().t

2021-01-10 23:20:22 21450 3

原创 torch教程——训练第一个神经网络

深度学习的3个主要步骤如下:定义一个函数集F。定义一个评价函数:其输入是F中的某个函数f(实际上是决定了函数表达式的参数),输出是f的好坏。从F中找到一个最好的函数。神经网络其实就是一个函数集,我们通过定义神经网络的结构,决定了函数的一般形式。神经网络的参数则决定了 函数的表达式,这些参数是计算机根据一定的规则学习的。定义函数集在上一节中,我们已经定义了一个简易的神经网络,其代码如下:#神经网络import torchimport torch.nn as nnimport torch

2021-01-10 21:55:20 1151

原创 torch教程——搭建第一个神经网络

Pytorch是一个机遇Torch的python第三方库,是当前最流行的机器学习库之一。本文讲讲述如何搭建一个简易的神经网络。将自定义神经网络封装在一个类(Net类)中,此类需要继承nn.Module。Net类需要重写父类的两个函数,分别是构造函数和前向传播。构造函数:在这里定义前向传播函数中需要用到的层,如卷积层,全连接层。这里定义的层通常是比较复杂,需要参数的。前向传播:定义了神经网络从输入,到隐层再到输出的运算过程。这里包含简单的前向传播函数,如有激活函数(如Sigmoid,Relu等),也

2021-01-10 20:53:02 3340

原创 torch教程

Pytorch是一个机遇Torch的python第三方库,是当前最流行的机器学习库之一。本文机遇Pytorch官方中文教程。Tensor(张量)tensor类似于numpy中的adarray,是n维张量。创建tensor#张量:不初始化(都是0)print("构造张量:不初始化")x = torch.empty((5,3))print(x)#随机初始化print("构造张量:随机初始化")x = torch.rand((5,3))print(x)#全0矩阵print("构造张量

2021-01-10 16:19:29 3113

转载 Markdown& typora教程

https://www.cnblogs.com/hider/p/11614688.html

2021-01-09 23:19:20 79

原创 numpy基础知识总结

numpy介绍numpy是python中的科学计算基础包,其核心是多维数组adarray。该库提供了用于数组计算的各种API,包括线性代数,统计,离散傅里叶变换等。基础知识轴:多维数组的维数成为轴,如 一维向量的轴是1,矩阵的轴是2。常见属性import numpy as npa = np.arange(15).reshape(3,5)#常见属性print("数组的维度的个数:\t\t",a.ndim)print("数组的形状:\t\t\t",a.shape)print("数组元

2021-01-08 14:59:46 338

原创 数据标注教程:上传和下载方法

使用清华云盘进行数据交换,我会告诉大家上传和下载链接。下载链接所有人共享,上传链接有自己专属链接。文末附上下载与上传链接。下载数据方法将下载链接复制到浏览器中打开,界面如下。双击自己名字的文件夹,即可预览待处理的数据集。预览没有问题后,返回第1步中界面,点击下载按钮,即可将数据集下载到本地。(注意:我点击的是水清同学的下载按钮,大家下载的时候,请点击自己名字后面的下载按钮。)至此,下载工作已经完成。上传数据每个人有自己专属的上传链接,将链接打开,复制到浏览器中打开,界面如下:随后点击

2020-10-04 16:15:27 1176

原创 数据标注教程

叶脉数据标注打开PS,导入图片。点击文件 -> 打开点击打开按钮,选择一张图片,点击打开。打开之后效果是这样在背景图层用对象选择工具选中图片选中之后效果是这样在右下角找到新建图层快捷键,点击新建一个图层选中图层1,右键选择描边。描边时颜色是黑色,像素大小是6。再新建一个图层2,右键选择填充。颜色选黑色。填充颜色参数如下图。再新建一个图层,在图层3中用画笔工具绘制主干叶脉。最后再新建一个图层,在第4个图层,在第4图层画一些比较细的叶脉。完成所有的操作后,点击文

2020-10-02 21:35:00 6666

原创 学习工作日记:2020-08-20

工作:发版每次发版有一个负责人,如果此次新报要加上自己开发的功能就在GitLab上提出MergeRequest,并指向对应的负责人,由他合并分支。记得不要自己合并分支。学习:表格布局。博客在此。学习:TextView新的属性。属性大全。学习:EditText属性:通过设置inputType来定义不同的输入框。学习:单选框和复选框。学习:状态开关按钮和开关。学习:时钟的用法。数字时钟于模拟时钟。设置时间显示的格式,时区(timeZone)等。学习:计时器。...

2020-08-20 17:19:43 106

原创 Android开发:表格布局

表格布局继承自线性布局,其本质依旧是线性布局管理器。如果直接向TableLayout中添加组件,则该组件占据一行。向TableLayout中添加行:TableRow列的宽度:取决于该列中最宽的单元格。表格宽度:取决于父容器的宽度。列数:取决于列数最多的行。行为方式有如下3种:(1)shrinkColumns:该列单元格可收缩,以适应父容器的宽度。(2)stretchColumns:改列单元格可拉伸,以填满父容器。(3)collapseColumns:隐藏该列。xml文件<?

2020-08-20 15:31:50 4179

转载 正则表达式入门

点击这里进入

2020-08-17 09:57:27 66

原创 Android开发:RecyclerView的点击事件

RecyclerView是Android中对ListView的升级,用来在有限的手机屏幕上展示大量的数据。除了用来展示数据,我们还可以为每个item,甚至每个item内的子控件设置监听器,以实现点击事件。点击事件的实现方式有如下两种。在onCreateViewHolder中注册点击事件RecyclerView并非Android的原生空间,因此需要在build.gradle中添加依赖。其次,在布局文件中添加RecyclerView。<?xml version="1.0" encoding="

2020-08-10 23:12:03 10073 1

原创 Android开发:AlertDialog的使用

AlertDialog可以在当前界面上弹出一个对象框,此对话框置于所有界面上面,且可以屏蔽他们的交互能力。一般用于一些重要的提示内容。AlertDialog不用在布局文件中声明,而是通过代码文件中的构造器来生成并显示。下面的代码展示了AlertDialog的基本使用方法。总结一下,使用AlertDialog的基本步骤。创建一个AlertDialog.Builder()对象。设置title和message等。设置按钮的监听器。调用show()方法显示之。修改按钮颜色的方法调用AlertD

2020-08-09 20:24:00 477

原创 Android实例:使用Intent在多个Activity之间传递数据

众所周知,intent可以用于启动Activity。其实在启动的时候,还能通过intent来传递数据,下面就来看一个实例。向下一个Activity传递数据第一个activity的布局文件这里仅仅放置了一个按钮,用于启动第二个Activity。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi

2020-08-05 15:38:01 1011

原创 Android实战:使用隐式Intent打开系统浏览器

Intent简介使用Intent可以在Android的各个组件之间交互,如启动Activity, 启动Service,发送广播等。Intent不仅可以指定当前组件想要执行的动作,还可以在不同组件之间传递数据。显式Intent:直接指明跳转到哪个Activity。Intent的构造函数接收两个参数,分别是Context和Activicy::java.class。隐式Intent:指定Intent的Action和和Category。Intent的构造函数接收一个参数,就是Action。AndroidMan

2020-08-05 08:12:05 2352

原创 kotlin:集合的函数式API使用

本文注重介绍几个kotlin中内置的几个集合的API,其形参是lambda表达式maxBy()函数本函数接收一个lambda表达式作为形参,根据传入的条件来遍历集合,从而找到该条件下的最大值。比如我们要找到一个字符串组成的集合中长度最大的元素就可以这么写。val list = arrayListOf<String>("Apple", "Banana", "Pear", "Orange")print(list.maxBy { it.length })map()函数本函数接收一个lam

2020-08-04 09:49:01 270

原创 Android实例:跟随手指动的小球

创建自定义组件这里创建了自定义组件,并重写了onDraw()和onTouchEvent()方法。前者的功能是绘制一个红色的小球。后者的功能是当点击屏幕事件发生时,更新小球的坐标,并重新绘制。package com.example.mydefineviewimport android.content.Contextimport android.graphics.Canvasimport android.graphics.Colorimport android.graphics.Painti

2020-08-03 11:16:18 327

原创 Android:在子线程中更新UI

Android的UI是线程不安全的,因此只能在主线程中更新UI,否则就会出现异常。请看下面的例子。实战:直接在子线程中更新UI会报错布局文件布局文件中只定义了两个空间,分别是TextView和Button。后者的点击事件用于更新前者显示的内容。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

2020-08-02 16:35:42 499

原创 Android:多线程编程

Android多线程编程继承Thread开启子线程最简单的方式就是自定义一个类,继承自Thread,并重写run()方法,在其函数体中编写子线程的逻辑。class ThreadTest:Thread() { override fun run() { super.run() //在这里写子线程的逻辑 println("这是一个子线程!") }}最后调用该类的start()方法即可开启子线程。这里先调用其构造方法实例化,然后调用st

2020-08-02 16:07:06 88

原创 Android开发:运行时权限

权限机制程序的开发者往往存在滥用权限的问题,在用户隐私方面存在较大的隐患,严重影响了使用体验。但是由于对APP的依赖性,无法拒绝安装,使用某些APP,因此Android提出了运行时权限。运行时权限用户无需在安装软件时一次性同意所有的权限,而是在软件的使用过程中对某一权限申请进行授权。普通权限:基本不会威胁用户隐私和安全,系统自动授权。危险权限:可能触及用户隐私,如位置信息,联系人信息等,必须由用户手动授权。点击这里查看危险权限列表。实战:申请CALL_PHONEManifest.xml这

2020-08-02 09:26:07 212

原创 Android开发:使用SharedPreferences进行持久化存储

不同于文件的直接读写字符串的方式,SharedPreferences使用键值对存储数据。获取SharedPreferences对象想使用SharedPreferences存储数据,首先要获取SharedPreferences对象。有如下两种方式。Context类提供的getSharedPreferences()方法该方法有两个形参,分别是文件名和打开方式。Activity类提供的getSharedPreferences()方法该方法只有一个形参,就是打开方式,文件名默认是当前Activity的

2020-07-25 10:49:31 214

原创 Android开发:文件存储

这个程序只有一个Activity, Activity中只有一个Edittext。实现的功能是在Activity销毁之前将EditText的内容存储到一个文件中,在Activity创建的时候,从该文件中读取内容并写道EditText中。代码如下,在onCreate加载数据,在onDestroy中保存数据。MainActivity.ktpackage com.example.filetestimport android.content.Contextimport androidx.appcompat.

2020-07-25 10:07:29 182

原创 Kotlin学习:高阶函数

函数类型同整型,浮点数,布尔变量一样,函数类型也是一种数据类型。定义函数类型的基本格式如下,需要指出函数的形参列表和返回值类型。这里的Unit是指返回值类型是空,相当于Java的void。(String, Int) -> Unit高阶函数所谓高阶函数,就是指形参或者返回值是函数类型的函数。当高阶函数允许用函数类型作为形参的时候,这个高阶函数的内部逻辑可以通过此形参决定。即使是同一个高阶函数,传入不同的函数,也可以实现完全不同的功能。下面看一个具体的例子,先上代码//此函数的形参:2个整型

2020-07-25 09:24:41 78

原创 Kotlin:静态方法

静态方法在其他高级语言(如C++,Java)中也叫类方法。静态方法在调用时无需创建实例,通过类名.方法名的方式调用。在java中调用静态方法的只需在声明前面加关键字static即可。而kotlin中却比较复杂,下面看看几种常见的应用场景。工具类工具类没有比较实例化,因此非常适合用静态方法实现。在kotlin中使用单例类实现类似的功能:object Util{ fun function(){ println("这是一个工具类") }}实际上这里的function并

2020-07-19 10:57:58 4786

原创 kotlin 重载运算符

重载运算符是多态的一种方式,具体含义是在自定义类中对原有的运算符赋予新的意义。如“+”这个二元运算符最基本的含义是两个数相加,但是在String类中可以表示两个字符串的连接,如'abc'+'def'='abcdef'运算符重载的使用的关键字时operator,以重载’+'为例,说明重载运算符的标准格式class Obj{ operator fun plus(obj:Obj):Obj( //在这里定义函数体 )}不同的函数名对应不同的运算符,如plus对应’+’,下表列出来函数名和操作符的

2020-06-27 21:36:18 228

原创 Kotlin标准函数

kotlin在Standand.kt中定义了一些标准函数,方便程序员调用。letlet函数的参数是一个lambda表达式,其调用格式如下:obj1.let{obj2 -> 语句块}这里的obj与obj2实际上是同一个对象,写的不一样是为了避免重名。let函数最常见的应用时辅助判空。请看下面的例子fun doStudy(study:Study){ study.read() study.write()}此处doStudy是一个函数,接收一个Study类型的参数,其函数体也很简单,

2020-06-17 21:08:10 283

原创 Kotlin语法总结

变量变量是一门编程语言最基础和重要的功能,kotlin的变量定义很有特色。自动推导类型。C++,java等高级语言在声明变量的时候需要指明变量类型,如int value = 0;。但是kotlin拥有出色的类型推导机制,在变量声明并初始化的时候,可以根据初始化值的不同,自动推导出变量类型,如//整型变量val num1 = 0//浮点数val num2 = 0.0//字符串val str = "Hello world!"显式声明变量类型。当变量声明但不初始化的时候,编译器无法自动

2020-06-15 17:50:46 586

faces.zip 面部检测数据集

faces.zip 面部检测数据集

2021-01-14

空空如也

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

TA关注的人

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