服务器端配置

首先配置~/.jupyter/jupyter_lab_config.py,内容为:

1
2
3
4
5
6
7
8
9
10
c.LabApp.allow_origin = '*'
c.ServerApp.ip = '0.0.0.0'
c.LabApp.allow_remote_access = True
c.LabApp.allow_root = True
c.LabApp.base_url = '/jupyter'
c.LabApp.open_browser = False
c.LabApp.token = "***********************"
c.LabApp.port = 80
c.LabApp.terminals_enabled = True
c.LabApp.tornado_settings = {'shell_command': ['/usr/bin/zsh']}

其中将c.LabApp.token为密码,当你登陆Jupyter Lab的时候需要使用。

c.LabApp.tornado_settings设置不是必须的,只是方便使用zsh时,可以通过配置让终端可以好看点。下面的Environment同理。

阅读全文 »

GAN

原理

生成对抗网络(GAN)由2个重要的部分构成:

  1. 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
  2. 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

生成对抗网络GANs由生成器和判别器构成

阅读全文 »

注意:这种方法会卸载现有的Office365,具体原因未知,所以暂时不可用。

现在的电脑有的预装office365,但是此时安装visio会报错。可以采用如下方式解决。

首先从mdsn中下载最新的VisioPro2016的安装镜像,下载地址

下载之后第一步要把镜像文件加载至光驱,比如加载到了E:\。正常情况下,点击 setup 会直接进入 Visio 程序的安装,但是现在不能够进行正常的安装,在任务管理器也不会看见进程开启

第二步 到 Office 2016 Deployment Tool 下载文件,打开下载到的部署工具安装文件,选择任意路径解压;解压后路径内有一个 Setup.exe 文件和若干个配置文件;新建配置文件,例如命名为 configuration.xml,内容如下:

阅读全文 »

之前因为考虑不得当,没有采用分支的方法管理同一个工程。在github上建立了多个仓库,强迫症发作了,想合并这些仓库到同一个git中,并保留所有的git记录。具体来说,假设我们有如下几个仓库:

  1. OldA:要合并的仓库A
  2. OldB:要合并的仓库B
  3. C:将OldA和OldB两个仓库合并到该git中

具体操作过程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mkdir C
cd C
# Assume the current directory is where we want the new repository to be created, Create the new repository
git init

# Before we do a merge, we have to have an initial commit, so we’ll make a dummy commit
dir > deleteme.txt
git add .
git commit -m "Initial dummy commit"

# Add a remote for and fetch the old repo
git remote add -f old_a <OldA repo URL>

# Merge the files from old_a/master into new/master
git merge old_a/master
# if occurs "fatal: refusing to merge unrelated histories"
git merge old_a/master --allow-unrelated-histories

# Clean up our dummy file because we don’t need it any more
git rm .\deleteme.txt
git commit -m "Clean up initial file"

# Move the old_a repo files and folders into a subdirectory so they don’t collide with the other repo coming later
mkdir old_a
dir -exclude old_a | %{git mv $_.Name old_a}

# Commit the move
git commit -m "Move old_a files into subdir"

接着合并其余仓库,如OldB

阅读全文 »

安装

Vim大概有如下几个版本:vim、vim-athena、vim-gnome、vim-gtk、vim-gtk3、vim-noxvim-tiny。它们中有编译进最小功能的 Vim 包(vim-tiny),有较全功能的文本界面 Vim 包(vim-nox),有适用于老的 X-Window 界面的版本(vim-athena),有适用于 KDE 环境的 GTK2 版本(vim-gtk),等等。

对于Ubuntu而言,一般情况下sudo apt install vim-gtk3即可。在 Ubuntu 上,vim 和 gvim 都是指向同一个应用程序的符号链接,且 gvim 的执行效果和 vim -g 相同。所以要启动图像化界面的vim,直接在终端执行gvim即可。

另外,若使用远程软件连接到Linux机器上,需要注意远程终端软件的远程字符集(如 PuTTY 中的“Windows > Translation > Remote character set”)应当设置成 UTF-8。

然后,还可以安装中文版本的帮助文件:

阅读全文 »

dockerfile记载了从一个镜像创建另一个新镜像的步骤。撰写好Dockerfile文件之后,我们就可以轻而易举的使用docker build命令来创建镜像了。Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,当我们需要定制自己额外的需求时,只需在 Dockerfile 上添加或者修改指令,重新生成 image 即可,省去了敲命令的麻烦。

Dockerfile的组成部分

部分命令
基础镜像信息FROM
维护者信息MAINTAINER
镜像操作指令RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等
容器启动时执行指令CMD、ENTRYPOINT

下面主要列举出Dockerfile中比较常用的指令及其用法和说明,需要注意的是这些指令都是全部大写。

FROM

阅读全文 »

二叉树

二叉树遍历模板

  1. 前序遍历先访问根节点,再前序遍历左子树,再前序遍历右子树
  2. 中序遍历:先中序遍历左子树,再访问根节点,再中序遍历右子树
  3. 后序遍历:先后序遍历左子树,再后序遍历右子树,再访问根节点

注意点:

  1. 以根访问顺序决定是什么遍历

  2. 左子树都是优先右子树

阅读全文 »

基本信息

  • 标题:Few-Shot Learning with Global Class Representations
  • 年份:2019
  • 期刊:ICCV
  • 标签:global class representations, few-shot learning
  • 数据:miniImageNet,Omniglot

创新点

  1. 通过在训练阶段引入新类的数据,同时对基类和新类学习全局类别表征,并利用样本生成策略解决类别不均衡问题,有效防止模型在基类数据中出现过拟合的现象,从而提高了模型泛化到新类的能力。
  2. 方法可以很容易的扩展到广义小样本学习(相比标准小样本学习,广义小样本学习中测试样本不仅包含新类,还包含了基类)。
  3. 所提的方法在标准小样本学习与广义小样本学习的benchmark上均取得了很好的效果。并且在广义小样本学习上,性能的提升更大。

创新点来源

阅读全文 »

最近快要面试了,再刷一遍剑指Offer,看大家分享刷LeetCode和剑指Offer的时候都是有模板的,如果按照随机顺序刷,很容易忘记而且不容易总结刷题思路。所以常常把一类题放到一块一起刷。

《剑指Offer》有如下优点:

  • 很可能在面试中出现原题(至少在微软面试经常能遇到原题)
  • 题量少,但是涵盖的内容较全,性价比较高
  • 能培养一个良好的刷题习惯

缺点是:

  • 题目较少,刷着容易过拟合
  • 动态规划的题比较少,因此需要在力扣上专项训练。
阅读全文 »

最近在刷leetcode的时候,经常要用到标准库,这里总结一下标准库的常见用法,用于查询使用。

queue

queue模板类的定义在<queue>头文件中。只能在容器的末尾添加新元素,只能从头部移除元素。

与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型。

定义queue对象的示例代码如下:

阅读全文 »