少年初心

上进心的男生是有魅力的。不论是学习还是之后工作,有上进心的男生都是发光哒。


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

实验室/科研神器——免费快捷搭建内网穿透教程

发表于 2019-12-02   |   更新于 2019-12-02 | 分类于 工具 , 内网穿透
字数统计: 1.1k | 阅读时长 ≈ 3

( • ̀ω•́ )✧博主更换输出主战场了=》少年心气的博客(/ω\)
(σ゚∀゚)σ..:*☆欢迎大家批评指教,一起来讨论进步~哎哟不错哦~( ̄3 ̄)a

首先说一下我的需求:学院服务器是linux的系统;被分配了内网IP;不知道对应路由器在哪;需要外网(在宿舍)也能进行访问。

这里注意:虽然宿舍用的也是校园网,但是 服务器那边的路由器,可能只是被校园的网络管理员分配了一个公网IP;然而路由器进行了NAT/DHCP 进行了内网IP分配,使得服务器都可以访问到外网,然而外网(只知道一个公网IP,却不知道 我想访问的服务器是哪个)是访问不到 服务器的。

所以之前我们想到windows之间可以用teamviewer。但是服务器都是黑框,于是想到使用找到对应的公网IP路由器,直接进行端口转发,但是用的交换机、不是路由器,没有这个功能。于是使用teamviewer搭建对应的“威屁恩”(因为 自己没有预算,而且需要有一台公共服务器C,A B都能访问到, 在C上搭建 “威屁恩”),使得A B能够处于同一网段,于是就可以进行 网络访问;再进行一下 端口转发就好了。

奈何上面的想法都没有奏效,但是以上过程帮助我们理清了思路——内网穿透,需求不大 黑框能连接就行。

于是发现了下面这个神器。可以说是在该需求下,史上最好用的免费服务器来搭建内网穿透的方式了!

阅读全文 »

数据处理和模型评估与选择

发表于 2019-10-30   |   更新于 2020-05-26 | 分类于 MachineLearning
字数统计: 1.2k | 阅读时长 ≈ 4

简介

正确使用数据处理、模型评估和模型算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要。

数据处理

在使用数据进行建模或分析之前,对其进行一定的处理;并且在应用机器学习算法分析结果之后对模型数据进行处理和特征提取/选择的过程。

阅读全文 »

VSCode&Hexo快捷键和操作命令

发表于 2019-10-26   |   更新于 2019-11-10 | 分类于 hexo , vscode
字数统计: 1.7k | 阅读时长 ≈ 6

VSCode中 非常好用的快捷命令

多行操作

  • 选中多行进行操作:Alt + 鼠标左键(或者 Ctrl+Alt + 上下按键)
  • 加选下一个同名名称:Ctrl + d ( + u 是选择上一个)

基础操作

  • 首先是F1/Ctrl+Shit+P万能键,谁用谁知道
  • Ctrl+G:跳转行号
  • Ctrl+P:文件切换
  • Ctrl + Shift + Tab 调出最近打开的文件列表
  • Ctrl + Tab 与上面一致,顺序不一致

  • Alt+↑↓:整行上下移动
  • Ctrl+↑↓:编辑器垂直滚动条上下移动,光标不动
  • Ctrl+Backspace/Delete:整词/连续空白删除
  • Ctrl+→←:光标整词移动

  • Ctrl+F查找/Ctrl+Shift+F在文件中查找(通用快捷键不再赘述)
  • F12/Ctrl+左键点击函数:跳转到定义
  • Shift+F12:预览定义

代码调试

  • F5:调试/继续,
  • F10:单步跳过,
  • F11:单步进入,
  • Shift+F11:跳出。
  • F9:切换断点

代码提示

  • Ctrl+空格:自动提示

集成终端快捷键

  • Shift + PgUp / PgDown: 页面上下翻屏
  • Ctrl + Home / End: 滚动到页面头部或尾部
  • Ctrl + Enter: 在下面插入新的一行
  • Ctrl + Shift + [ 折叠区域代码
  • Ctrl + Shift + ] 展开区域代码

插件介绍

  1. Python(必备)
    VScode自带的官方插件

  2. Anaconda Extension Pack
    可以自动补全anaconda包中的属性名称

  3. Code Spell Checker
    单词拼写检查,非常推荐,有时候会拼错单词,这个不仅可以指出错误,还能提供正确单词的拼写方式。
    安装好之后,选中拼写错误的单词,旁边出现黄色小灯泡,点击选择单词,直接替换。

  4. Autopep8/yapf
    自动格式化代码;(Alt + Shift + F)

  5. Settings Sync
    将VScode的配置上传到github,以后换机器,重装系统,随时下载,不用重新找教程了

  6. vscode-icons
    文件图标主题,能够让你的各种文件一目了然,不用再去看扩展名,而且超级好看

  7. SynthWave’84
    字体颜色主题,我个人非常喜欢的一套高亮字体方案

  8. koroFileHeader
    文件头注释(ctrl+alt+i) 和函数头注释(ctrl+alt+t)工具,一键生成头注释

  9. Markdown Preview Enhanced
    在VSCode中完美书写MarkDown和LaTex必备的预览插件

其它设置

隐藏菜单栏

这个属于个人习惯,如果你也感觉菜单栏很碍眼,可以点击查看->切换菜单栏,即可隐藏菜单栏。需要菜单栏的时候按Alt键即可查看

设置快捷键

文件->首选项->键盘快捷方式,将需要的修改的快捷键的整个大括号里面的内容复制到右边keybindings.json文件中,然后修改“key”的值为你需要的快捷键即可。我这边只修改了复制一行和删除一行的快捷键。

常用hexo命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
	·常见命令
hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help # 查看帮助
hexo version #查看Hexo的版本

·缩写
hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

_config.yml

这里面都是一些全局配置,每个参数的意思都比较简单明了,所以就不作详细介绍了。

需要特别注意的地方是,冒号后面必须有一个空格,否则可能会出问题。

阅读全文 »

Markdown中Latex语法梳理

发表于 2019-10-26   |   更新于 2019-11-10 | 分类于 markdown
字数统计: 1.4k | 阅读时长 ≈ 7

笔者在学习MachineLearning和神经网络模型时,越发感到需要使用的数学公式变多了.
于是乎为了方便自己进行ML笔记整理运用到的数学公式以及方便日后进行论文写作中熟悉使用LaTex语法.现将markdown中LaTeX数学公式语法进行整理.方便在需要的使用自取自用.
推荐 Excel等表格在线转换器——LaTex 食用更加.

插入公式的方法

  • 行内公式: $...$ 和 \(...\)
  • 块内公式: $$...$$ 和 \[...\]

测试输出LaTex公式


BP算法

1
2
3
4
5
6
7
8
9
10
11
12
13
训练集	$\left\{\left(x^{(1)}, y^{(1)}\right), \ldots,\left(x^{(m)}, y^{(m)}\right)\right\}$

设 $\Delta_{i j}^{(l)}=0(\text { for all } l, i, j)$

$\begin{array}{l}{\text {For } i=1 \text { to } m}\end{array}$

$$
\begin{array}{l}{\text { Set } a^{(1)}=x^{(i)}} \\ {\text { Perform forward propagation to compute } a^{(l)} \text { for } l=2,3, \ldots, L} \\ {\text { Using } y^{(i)}, \text { compute } \delta^{(L)}=a^{(L)}-y^{(i)}} \\ {\text { Compute } \delta^{(L-1)}, \delta^{(l+1)}, \ldots, \delta^{(2)}} \\ {\Delta_{i j}^{(l)} :=\Delta_{i j}^{(l)}+a_{j}^{(l)} \delta_{i}^{(l+1)}}\end{array}
$$

$\begin{array}{l}{D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}+\lambda \Theta_{i j}^{(l)}} & {\text { if } j \neq 0} \\ {D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}} & {\text { if } j=0}\end{array}$

其中 $\frac{\partial}{\partial \Theta_{i j}^{(l)}} J(\Theta)=D_{i j}^{(l)}$

训练集 $\left\{\left(x^{(1)}, y^{(1)}\right), \ldots,\left(x^{(m)}, y^{(m)}\right)\right\}$

设 $\Delta_{i j}^{(l)}=0(\text { for all } l, i, j)$

$\begin{array}{l}{\text {For } i=1 \text { to } m}\end{array}$

$\begin{array}{l}{D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}+\lambda \Theta_{i j}^{(l)}} & {\text { if } j \neq 0} \\ {D_{i j}^{(l)} :=\frac{1}{m} \Delta_{i j}^{(l)}} & {\text { if } j=0}\end{array}$

其中 $\frac{\partial}{\partial \Theta_{i j}^{(l)}} J(\Theta)=D_{i j}^{(l)}$


阅读全文 »

WE_ACAN

发表于 2019-10-24   |   更新于 2019-11-11 | 分类于 页面
字数统计: 1.7k | 阅读时长 ≈ 10
(ノ▽`*)ノ[你来啦♪]【文章内容已加密,请输入密码后访问】ヾ(*>∀<*)(ノ∀`●)⊃
阅读全文 »

NVIDIA\CUDA\cuDNN环境安装(解决循环登录问题)和Anaconda安装使用

发表于 2019-10-15   |   更新于 2019-12-02 | 分类于 ubuntu , 环境
字数统计: 2.4k | 阅读时长 ≈ 9

关于Ubuntu显卡驱动的安装-解决循环登录\挂载\卸载问题

由于AC自己本人刚开始在实验室使用ubuntu系统时,电脑自带多张显卡 配置有点问题,导致循环登录—-噩梦般的两天未果,隧重装.

AC的显卡驱动安装过程以及一些操作再次记录下来,以飨后来者.

NVIDIA显卡驱动安装

禁用 nouveau 驱动(nouveau是 ubuntu16.04 默认安装的第三方开源驱动,安装cuda会跟nouveau冲突,需要先禁用)

  • 先查看 nouveau 是否被禁用,输入以下命令,若有输出,则说明 nouveau 在运行中

lsmod | grep nouveau

  • 修改 /etc/modprobe.d/blacklist.conf 文件

sudo vim /etc/modprobe.d/blacklist.conf

在末尾加入

blacklist nouveau options nouveau modeset=0

  • 执行以下命令,并重启

sudo update-initramfs –u

  • 再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功

lsmod | grep nouveau

阅读全文 »

Python机器学习中常用类库的使用

发表于 2019-09-25   |   更新于 2019-12-02 | 分类于 Python , library , MachineLearning
字数统计: 2.8k | 阅读时长 ≈ 12

[TOC]

本文引用和使用的类库

  • import numpy as np
  • import matplotlib.pyplot as plt
  • from sklearn import datasets

Jupyter Notebook’s Learning to writing

Toolbar

  • 可以进行 Cell代码行的编写运行
  • 可以切换Cell编写模式——为Markdown的模式
  • Help当中可以快速浏览并且更改使用的快捷键

快捷键

  • a/b 快速插入一行(在相应的选中行的上面或者下方)
  • x 剪切/删除一行
  • m 切换为markdown模式
  • y 切换为coding模式

优点

每次不用总是重新加载数据
只需要加载一次就可以!所以方便
注意:下面定义的变量,在上方也可以用!除非点击Kernel——Restart & run all

以上就可以充值变量上下文。

Jupyter Notebook 高级-魔法命令

1
2
3
4
5
%run    #调用并且 加载对应的脚本/方法。
%timeit #只能写一句话!测试 耗费时间
%%timeit #测试下面耗时
%time #测试一句话的cpu和人类感知的实际时间
%%time #测试多行代码耗时

%run? #查看对应方法的 帮助文档

lsmagic #查看当前环境下,所有的魔法命令

numpy.array基础

选择为什么不选择List

Python List 的特点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
L = [i for i in range(10)]
# 像是cell 可以放置多种不同类型的元素在List中。
# List十分灵活
import array
arr = array.array('i',[ i for i in range(10) ])
#array模块是python中实现的一种高效的数组存储类型。它和list相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组的类型
#array.array(typecode,[initializer]) --typecode:元素类型代码;initializer:初始化器,若数组为空,则省略初始化器
arr = array.array('i',[0,1,1,3])
print(arr)
#array('i', [0, 1, 1, 3])

#array.typecode -- 对象属性
print('\n 输出 用于创建数组的类型代码字符:')
print(arr.typecode)
# 输出 用于创建数组的类型代码字符:
#i

区别List 、 array、 numpy.array

  • Python的List不要求存储同样的类型,带来效率问题。
  • array的缺点是没有将数据当做向量或者矩阵,不支持基本运算。
  • nparr.dtype —— 只有一种类型的数据类型在nparr中!
    而且 nparr可以有 整型 和 浮点型
    而且 nparr可以用来生成 矩阵和向量之类的。
    阅读全文 »

scikit-learn在机器学习算法中的代码使用

发表于 2019-09-25   |   更新于 2019-11-10 | 分类于 Python , scikit-learn , MachineLearning
字数统计: 5.1k | 阅读时长 ≈ 23

简单线性回归的实现

zip()

1
2
3
4
5
6
7
8
9
10
11
12
13

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]

划分数据样本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def train_test_split(X, y, test_ratio=0.2, seed=None):
"""将数据 X 和 y 按照test_ratio分割成X_train, X_test, y_train, y_test"""
assert X.shape[0] == y.shape[0], \
"the size of X must be equal to the size of y"
assert 0.0 <= test_ratio <= 1.0, \
"test_ration must be valid"

if seed:
np.random.seed(seed)

shuffled_indexes = np.random.permutation(len(X))

test_size = int(len(X) * test_ratio)
test_indexes = shuffled_indexes[:test_size]
train_indexes = shuffled_indexes[test_size:]

X_train = X[train_indexes]
y_train = y[train_indexes]

X_test = X[test_indexes]
y_test = y[test_indexes]

return X_train, X_test, y_train, y_test

根据 test_ratio划分样本为80% 20%……

阅读全文 »

解决hexo多台电脑之间同步访问和百度无法索引hexo博客的问题

发表于 2019-08-31   |   更新于 2019-10-02 | 分类于 hexo
字数统计: 1.4k | 阅读时长 ≈ 5

声明

本文重点讲解如何进行hexo多台电脑之间同步访问问题;带过一下利用coding.net网站进行百度SEO优化问题;其他一些操作错误的小细节请自行百度或者与我联系。感恩。

场景

进入研究生生活之后,需要在A实验室(或者工作单位)之中进行博客的日常码字和管理;然而有时候回到B宿舍(或者家里)之后又想更新blog。然而囿于hexo静态博客,无法像wp那样进行后台的管理和编写,只能在本地进行同步和上传,无奈想起使用协同代码管理服务————git.

选择

前一阵和小伙伴们做比赛的时候,由于暂时需要进行代码的保密工作,所以选择了码云进行代码托管和协同工作。github被微软收购之后,在今年1月份突然宣布了要将私有代码托管服务转变为免费的项目!(本来在收购之前 博主还特意备份了一下github的代码…… :)于是乎今天使用github来进行hexo原始文件的同步处理操作。

阅读全文 »

Flask的核心机制-关于请求处理流程和请求|应用上下文

发表于 2019-04-29   |   更新于 2019-10-02 | 分类于 python
字数统计: 1.4k | 阅读时长 ≈ 5

学习一样东西不能只停留在表面,我们要探索其中的细节,学习作者的编程思想,这样才能更进一步。

关于WSGIWSGI(全称Web Server Gateway Interface),是为 Python 语言定义的Web服务器和Web应用程序之间的一种简单而通用的接口,它封装了接受HTTP请求、解析HTTP请求、发送HTTP,响应等等的这些底层的代码和操作,使开发者可以高效的编写Web应用。一个简单的使用WSGI的App例子:

1
2
3
def application(environ, start_response): 
start_response('200 OK', [('Content-Type', 'text/html')])
return [b'<h1>Hello, I Am WSGI!</h1>']
  • environ: 一个包含全部HTTP请求信息的字典,由WSGI Server解包HTTP请求生成。
  • start_response: 一个WSGI Server提供的函数,调用可以发送响应的状态码和HTTP报文头, 函数在返回前必须调用一次start_response()。
  • application()应当返回一个可以迭代的对象(HTTP正文)。application()函数由WSGI Server直接调用和提供参数。
  • Python内置了一个WSGIREF的WSGI Server,不过性能不是很好,一般只用在开发环境。可以选择其他的如Gunicorn。
    阅读全文 »
12…21
AClearZhang

AClearZhang

210 日志
122 分类
15 标签
GitHub E-Mail
友情链接
  • SpenWoo
  • 鸡排酱

一言
:D 获取中...
:D 获取中...
0%
© 2020 AClearZhang | 本站总字数: 444.6k
访问人数 总访问量