- 博客(51)
- 收藏
- 关注
原创 云部署flask pytorch模型
在云服务器安装anaconda。搜索阿里云安装anaconda教程。创建虚拟环境并激活conda create -n pytorch-oose python=3.8source activate pytorch-oose安装pytorchbug1:gedit安装失败,sudo apt-get update失败我做的改动:1.备份原来的更新源cp /etc/apt/sources.list /etc/apt/sources.list.backup2.修改更新源vim /etc/apt.
2022-04-24 07:23:52
569
原创 springboot+react服务器部署
后端打包maven–cleanmaven–package将jar包上传到服务器前端打包npm run build报错:basedir=(dirname"(dirname "(dirname"(echo “$0” | sed -e ‘s,\,/,g’)")原因:webpack报错这个错误是由于操作系统的不支持shell脚本语句导致的,那么在windows中该如何修改这个命令,使得打包命令正常运行呢。转换一下思路,webpack底层本身就是node.js。那么,为什么不可以将sh
2022-04-10 11:40:06
1929
原创 spring boot随记
一. 数据库设计–Entity设计Note Entity字段NoteLibrary 一对多 双向User 多对一Paper 多对多 双向NoteLibrary Entity字段Note 多对一 双向User 多对一LibraryCollection 多对一NoteLibraryCollection Entity字段 id nameUser 多对一注册用户时新建默认收藏夹NoteImageFile Entity字段Note 多对一注解@NoArgsConstruc
2022-03-15 12:24:28
2805
4
原创 部署服务器
准备工作具体可以看看这篇博客:Windows 包管理器 - Scoop安装scoop通过scoop安装winscp(用于与服务器文件远程交互,图形化的),windows terminal(windows好用的命令行),win32-openssh(用于与服务器远程连接)连接服务器连接服务器之后,需要与服务器进行远程连接,需要用到win32-openssh生成公钥和私钥。从scoop/win32-openssh中打开ssh-keygen.exe,用于生成公钥id_rsa.pub和私钥id_rs
2021-08-04 00:00:17
206
1
原创 pytorch如何保存和加载模型
从本地地址直接加载预训练模型在本地,有几种方式可以避免下载直接加载预训练模型:https://www.cnblogs.com/ywheunji/p/10605614.html直接修改源码,改为本地地址把模型权重下载至torch的缓存文件夹当需要迁移学习时加载预训练模型此时,我的模型和预训练的模型有些结构可能不一致,需要多出一步,筛选掉预训练模型中与我的结构不一致的部分:https://blog.youkuaiyun.com/VictoriaW/article/details/72821329http
2020-12-26 20:03:07
594
原创 pytorch学习笔记
numpy如何初始化数组Numpy简介使用Numpy创建数组创建空数组empty()函数empty_like()函数创建填充固定值的数组zeros()函数zeros_like()函数ones()函数full()函数生成随机数数组seed()函数RandomState()函数random()函数permutation()函数shuffle()函数rand()函数randint()函数randn()函数binomial()函数normal()函数beta()函数c
2020-12-07 09:22:25
1089
原创 一些领域
dropout方法综述一文看尽dropout前世今生其中,dropConnect和Monte-Carlo Dropout和高斯分布有关系dropConnectDropConnect的inference部分和Dropout不同,在Dropout网络中进行inference时,是将所有的权重W都scale一个系数p(作者证明这种近似在某些场合是有问题的,具体见其paper)。而在对DropConnect进行推理时,采用的是对每个输入(每个隐含层节点连接有多个输入)的权重进行高斯分布的采样。Monte.
2020-11-19 09:16:19
394
原创 MCMC、吉布斯采样
学习视频:B站白板推导学习和代码教程:Li Hang code知乎(和上面内容一模一样)(权当参考)关于上面代码中,吉布斯采样二维正态分布的理解:Σ的意思是协方差矩阵,在高维正态分布中,协方差矩阵可以理解为代替了一维正态分布中方差的位置。什么是协方差矩阵(百度百科)————————————————一维正态分布:高维正态分布:二维正态分布长啥样:————————————————基于此,如何推出基于y的x的条件分布?二维正态分布的条件分布...
2020-11-05 21:54:14
455
原创 在pycharm中导入pytorch项目 | 10-10-2020
安装anaconda,并安装pytorch(百度搜索教程)我新建的虚拟环境叫做pytorch。这个环境可以在anconda3-envs中找到它的文件夹。什么是虚拟环境?在名为pytorch的虚拟环境中,我配置了pytorch1.0,python为3.8.那么我在运行使用pytorch1.0框架的程序时,就需要在这个虚拟环境中运行。在以后如果我需要用到pytorch0.4,那我可以再创建一个新的虚拟环境,给它配置pytorch0.4在pycharm中导入项目并配置虚拟环境。file-open打开..
2020-10-10 11:36:05
2866
1
原创 Week 6 | Hash Tables | Princeton Algorithms
一、Hash function哈希函数:均匀地打乱keys来生成表的索引。→ 将key映射为表的索引。→ 希望使用哈希表数组存储keys,而 f(key) 的值就是该key在数组中存储位置的索引,其中f(x)为哈希函数。1. hashCode()所有的java类都继承了hashCode()方法,返回一个32bits的int类型。默认的hashCode()实现返回了该类的存储地址。java库定义实现的hashCode()double类型的hashcode是将double这个数转换为64
2020-07-15 18:14:43
182
原创 Assignment 5 | KdTree | Princeton Algorithms
Correctness: 35/35 tests passedMemory: 16/16 tests passedTiming: 42/42 tests passedAggregate score: 100.00%1. 任务任务说明主要实现的就是两个功能,给一堆点,得到所给任意矩形中包含的点集,以及得到与所给任意点最近的点。2. PointSET.java这个类使用最暴力的方法,复杂度为N,也就是遍历所有点,找到符合条件的点。这个类使用的是Java库函数中定义
2020-07-13 16:12:36
395
原创 Week 5.2 | BST的几何应用 | Princeton Algorithms
文章目录一、基本BST的应用1. 1-d range search2. 线段交点二、kd-trees1. 2-d range search2. 2-d 最近点搜索3. kd-tree三、interval search trees1. 定义2. 实现3. 复杂度4. 区间搜索树的应用: 矩形相交四、总结一、基本BST的应用1. 1-d range search目标在有序symbol table中扩展实现两个操作:· Range search: find all keys between k1 a
2020-07-10 20:40:56
430
原创 Week 5.1 | 左倾红黑树LLRB | Princeton Algorithms
一、2-3 search trees上一节中讲述了BST的实现和性能,但其增删改查的复杂度最坏情况为N。如何得到最坏情况也为logN的结构呢?1. 定义2. 操作搜索K递归实现比较当前节点key与搜索key的大小;再找到搜索key所在区间;顺着link进入下一个节点插入K在2-node中插入(2-node即该节点中只有1个key):首先查找K所在位置,如果查找到的最后一个节点是2-node,则将2-node替换成3-nodeK < M, K > J, K <
2020-07-10 00:46:01
767
原创 Week 4.2 | Symbol tables、BST | Princeton Algorithms
一、基本APISymbol Tables:键值对(像一张表格一样,可以通过key列查询到value列)基本API:其中,key和value的要求:equals()方法怎么写:先判断是否同一个对象;再防止null情况;再保证是同一个类型;最后比较每一个字段二、有序ST的API对于有序的ST,可以丰富API,使用以下这些API来方便客户对于ST的使用:三、基本实现:链表与数组1. 链表(无序)ST的无序实现。2. 数组(有序)(Binary Search)使用两个
2020-07-09 12:03:24
407
原创 Assignment 4 | 8puzzle | Princeton Algorithms
Correctness: 51/51 tests passedMemory: 22/22 tests passedTiming: 125/125 tests passedAggregate score: 100.00%1. 任务Specification(科学上网)2. Board.javaimport edu.princeton.cs.algs4.In;import java.util.ArrayList;import java.util.Arrays;
2020-07-07 11:36:24
293
原创 Week 4.1 | Priority Queues | Princeton Algorithms
一、基本实现1. API各个collection的不同之处在于,到底删除哪一个元素。例如,栈删除的是最后加入的,队列删除的是最早加入的,而优先队列删除的是最大的(或最小的)。2. 基本实现方法两种基本实现方法优先队列的实现有两种基本实现方法:unordered 和 ordered。无序优先队列的实现:delete时遍历找到最大的,并将最大的与最后一个交换,删除最大的(此时是最后一个)。有序优先队列的实现(略)。大致就是插入后遍历数组找到合适的顺序位置,并插入。时间复杂
2020-07-06 10:55:41
487
原创 Assignment 3 | Collinear Points | Princeton Algorithms
得分:Correctness: 41/41 tests passedMemory: 1/1 tests passedTiming: 41/41 tests passedAggregate score: 100.00%问题要求:给定平面中的n个不同点的集合,找到连接4个或更多点的子集的每个(最大)线段。Points.java需要实现的方法: public int compareTo(Point that) // compare two points by y-
2020-06-28 17:24:55
374
原创 Week 3.1 | Merge sort | Princeton Algorithms
不要在递归的sort方法中创建辅助数组,因为这样会额外多出很多辅助数组(每次递归都要新建一个),会导致效率很低。
2020-06-28 11:56:29
265
原创 Week 3.2 | Quik sort | Princeton Algorithms
1. idea打乱数组分割partition(让a[0]归位,其左边是比它小的,右边是比它大的)递归sort和mergesort显然不同的是,qsort是先进行本层的操作,再递归(从顶到底);而mergesort是先递归,再从底层开始逐层进行该层的操作(从底到顶)。以上是qsort的主要思想。在此基础上,qsort也有一些不同的实现方式,如普通快排、双路快排、三路快排。普通快排似乎用到的不是太多,因为对于大量重复元素,它的表现是最差的,为n2。本节课主要学习的是双路快排和三路快排,其中三路快
2020-06-28 01:17:49
358
原创 链表 | 热题Hot100 | Leetcode
链表文章目录链表2. 两数相加19. 删除链表的倒数第N个节点21.合并两个有序链表148. 排序链表23. 合并K个排序链表- 方法2:优先队列(待完成)141. 链表是否有环142. 环形链表II160. 相交链表206. 反转链表234. 回文链表2. 两数相加两个链表代表两个整数,第一个节点都是从个位开始。将两个整数相加,输出链表。主要就是靠取模求值、除法求进位。(1)我的求解过程遇到的问题问题1:是否要用额外的链表。最后用了,因为不用的话,要么在循环中修改L1指针的当前值,但当L1为
2020-06-22 17:49:14
644
原创 Week 2.2 | Elementary sort | Princeton Algorithms
一、Comparable接口这个也是61B讲的更详细,略简单来说,就是implements Comparable接口的类,都需要具有CompareTo方法,这样就可以进行比较了。二、基础排序方法1. 选择排序idea:使用一个指针,从左到右移动。指针每移动一个元素,就在指针所指元素的右边遍历寻找到一个最小值,将其与指针所指的元素交换。该算法的不变性:指针的左边的元素是固定且升序的指针右边的元素都大于指针左边的元素实现:复杂度分析:N22. 插入排序idea:一个指
2020-06-19 00:27:35
211
原创 Week 2.1 | BAGS, QUEUES, AND STACKS | Princeton Algorithms
1. stackpush入,pop出,先入后出(尾入尾出),像一个杯子Linked-list implementation.・Every operation takes constant time in the worst case.・Uses extra time and space to deal with the links.Resizing-array implementation.・Every operation takes constant amortized time.・Les
2020-06-18 11:14:26
138
原创 Assignment 2 | Deques and Randomized Queues | Princeton Algorithms
1. 作业内容实现一个双端队列,包括addLast, addFirst, removeFirst, removeLast的操作。此外,还需要写一个迭代器。时间要求constant worst-case time,迭代器的时间也需要是constant worst-case time。实现一个随机队列,包括enqueue和dequeue的操作。需要迭代器。与普通队列不同的是,dequeue要求在队列中随机删除一个元素,迭代器也需要以随机的顺序来迭代队列。时间要求constant amortized tim
2020-06-17 23:56:57
173
原创 Assignment 1 | Percolation | Princeton Algorithms
提交修改:不变性:当实例变量的指针不再更改,可以设置为final。The private instance (or static) variable ‘uf’ can be made ‘final’; it is initialized only in the declaration or constructor. (uf指向一个对象)PMD ends with 1 warning.注释//或/*之后要加一个空格常用的常数需要设置为字段,static finalprintf:制表符\t
2020-06-15 12:05:25
361
2
原创 Week 1 | Union-Find | Princeton Algorithms
解决算法问题的步骤:・Model the problem.・Find an algorithm to solve it.・Fast enough? Fits in memory?・If not, figure out why.・Find a way to address the problem.・Iterate until satisfied.1. 问题分析连接两个节点,且能查找两个节点是否相连。(灰色的是辅助方法)目的:・Number of objects N can be huge
2020-06-14 15:39:22
235
原创 Week 7 | Lecture 17 18 19 | 算法分析 | CS61B-Spring-2018
1.分析算法运行时间的简化过程只考虑最坏的情况。选择一个有代表性的工序(又名:cost model),计算该工序需要进行多少次忽略低阶项忽略系数2. Big Theta不需要找到k1,k2,只需要做和之前一样的分析即可。...
2020-06-13 10:45:37
366
原创 HW1 | 吉他拟音 | CS61B-Spring-2018
接口和抽象类的用法:接口常常有一串层次结构,这些接口由抽象类继承,并提供默认实现。抽象类又由具体的类继承。一个很好的例子是Collection接口:它扩展了Iterable(它的超级接口),并由许多子接口(即List,Set,Map)实现,而这些子接口又具有自己的抽象实现(AbstractList,AbstractSet AbstractMap)(关于接口中的default方法与抽象类中的方法,我的理解是,default方法无法代替抽象类方法,因为接口中没有实例变量,许多方法无法实现(比如getter和
2020-06-10 19:15:10
810
3
原创 Week 6.1 | Lecture 15 | Pakages and Access Control | CS61B-Spring-2018
一、Pakages包名称为所有内容提供了唯一名称。使用import导入包,就可以使用其中的类。1. 包创建包手动创建创建一个包需要执行以下两个步骤:1.)将软件包名称放在该软件包中每个文件的顶部package ug.joshh.animal;public class Dog {...}2.)将文件存储在具有适当文件夹名称的文件夹中。该文件夹的名称应与您的软件包相匹配:ug.joshh.animal package is in ug/joshh/animal folder
2020-06-10 12:43:02
287
原创 Week 5.4 | Lecture 14 | 迭代器 | CS61B-Spring-2018
List的迭代器使用Interable接口public interface Iterable<T> { Iterator<T> iterator();}List类继承了该接口,所以有iterator()方法,用于返回一个Iterator对象public interface List<T> implements Iterable<T>{ Iterator<T> iterator(); ...}Ite
2020-06-06 14:51:09
252
原创 Week 5.3 | Lecture 14 | Exception | CS61B-Spring-2018
一、抛出、捕获异常1. Throw exception隐式异常:Java本身抛出的异常。public static void main (String[] args) { ArrayMap<String, Integer> am = new ArrayMap<String, Integer>(); am.put("hello", 5); System.out.println(am.get("yolp"));}$ java ExceptionDe
2020-06-06 11:58:26
234
原创 Week 5.2 | Lecture 13 | 一些其他Java特性:泛型方法和type upper bounds | CS61B-Spring-2018
创建一个ArrayMap类,该类实现了Map61BInterface,ArrayMap将具有以下方法: put(key, value): Associate key with value. containsKey(key): Checks if map contains the key. get(key): Returns value, assuming key exists. keys(): Returns a list of all keys. size(): Returns number o
2020-06-06 11:04:21
222
原创 Week 5.1 | Lecture 13 | 一些其他Java特性:自动转换和不变性 | CS61B-Spring-2018
public static <K extends Comparable<K>, V> K maxKey(Map61B<K, V> map) {...}<K extends Comparable<K>>,意味着传递到这个方法中的K类型,必须是继承自 Comparable< K >类的,否则报错。(因为需要用到Comparable接口中定义的CompareTo方法)其中< K >的意思是,我要将“我”(this)与其他k相
2020-06-06 11:04:13
197
原创 Midterm 1 | CS61B-Spring-2018
记录一下自己的错题感觉midterm1确实挺有难度的T T1. Q1.传参问题fillone方法只改变了d中存储的地址,不能改变x[0]的。2. Q3. 重载方法 与 强制转换参数不同就是重载方法,而不是重写方法。调用哪个重载方法取决于参数类型和变量的静态类型。虽然BioBox继承自StandardBox,但是这三个unlock方法都是重载方法,而不是重写方法。即,对于BioBox来说,有三个unlock方法,其中一个继承自StandardBox。静态类型取决于两处,一处是声明时的类型,
2020-06-05 00:05:21
470
原创 Week 4.3 | Lecture 11 | ADT、抽象类 | CS61B-Spring-2018
1. 抽象数据类型ADT抽象数据类型( ADT,Abstract Data Type)是指一个数据结构的数学模型以及定义在此数学模型上的一组操作。抽象数据类型是描述数据结构的一种理论工具,其目的是使人们能够独立于程序的实现细节来理解数据结构的特性。抽象数据类型的定义取决于它的一组逻辑特性,而与计算机内部如何表示无关。要理解一种ADT,需要理解它的三方面:数据对象如何定义、数据对象之间的关系如何定义、对数据对象的操作如何定义。2. Java LibrariesJava具有某些可以使用的内置ADT。这
2020-06-01 19:40:00
319
原创 Week 4.2 | Lecture 10 | 多态性设计通用方法、比较器 | CS61B-Spring-2018
接口不ectends objectdynamic method selection法则:编译器的法则:编译器允许memory box存储子类型。编译器编译的时候,是否出编译错误取决于静态类型。运行过程中的法则(run-time):在运行过程中,是否调用被重写的方法取决于动态类型。其他所有都取决于静态类型,包括重载方法的选择。例:这一段代码是否会报编译错误?在运行过程中,调用的是哪个方法?Object o2 = new ShowDog("Mortimer","Co.
2020-06-01 16:42:13
336
原创 Week 4.1 | Lecture 9 | Inheritance,Extends,Casting | CS61B-Spring-2018
一、Inheritance,Extends下面要用到的一个例子:VengefulSLList是SLList的子类,它的作用是能够打印被删掉的items。public class VengefulSLList<Item> extends SLList<Item> { SLList<Item> deletedItems; public VengefulSLList() { deletedItems = new SLList<Item
2020-06-01 10:32:53
342
原创 Proj1a 数据结构:双端队列| CS61B-Spring-2018
主要任务编写双端队列,能够addFirst, remove First, addLast, removeLast.并实现其他一些辅助功能。使用两种数据结构来完成双端队列,分别是链表和数组。要求这两种数据结构的add和remove操作都花费O(1)的时间,即与队列长度无关。LinkedListDeque主要思路见Week2中的双向链表。主要思路是:循环链表与哨兵节点:在双向链表中设置一个哨兵节点,它的next永远指向第一个节点,pre永远指向最后一个节点(即使此时链表为空,只有它自己,那么nex
2020-05-30 22:59:19
1571
原创 Lab 3 Unit Testing with JUnit, Debugging| CS61B-Spring-2018
菜单-run,出现的菜单中,您使用带有红色/绿色箭头的版本,则IntelliJ将呈现测试结果(默认渲染器)。如果将版本与白色/蓝色框一起使用,则将运行jh61B渲染器(好像是因为下载了CS61B插件,这个渲染器是CS61B老师自己写的)。两种都可。(run之后出现的列表中,同一类会显示不同的渲染器renderer来运行程序)reverse单向链表处理空参数的问题注意:this不能为空,因为this指代的是“我自己”这个对象,所以“我”一定是存在的。在本题中,在测试输入为空方法是否仍有效时,如果.
2020-05-30 00:32:14
804
1
原创 Week 3.3 | Lecture 8 | Inheritance, Implements | CS61B-Spring-2018
一些概念例:想要返回一堆字符串中最长的一个。public static String longest(SLList<String> list) { int maxDex = 0; for (int i = 0; i < list.size(); i += 1) { String longestString = list.get(maxDex); String thisString = list.get(i); if (th
2020-05-28 18:34:28
333
原创 Week 3.2 | Lecture 7 | JUnit、选择排序 | CS61B-Spring-2018
JUnit每次修改都应该进行test确保方法的正确性。将一个算法分为各个小方法,能够简化方法的实现。并且,每次对小方法的实现进行测试,能够确保每个小部分的正确性,从而减少组装整个算法时的错误。JUnit文档注意:若要使用@Test注解:必须将test方法改成非静态。且不用写main函数。(不使用@Test,可以写为static方法,并在main函数中调用)使用import可以省略掉@org.junit.Test和org.junit.Assert.assertEquals(expected2
2020-05-28 17:14:50
396
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人