Auto DL的使用
SHH
1.SSH(Secure Shell,安全外壳)
- 是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。
- SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。
2.SSH是如何工作的?
-
连接建立:SSH服务器在指定的端口侦听客户端的连接请求,在客户端向服务器发起连接请求后,双方建立一个TCP连接。
-
版本协商:SSH协议目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0协议相比SSH1.X协议来说,在结构上做了扩展,可以支持更多的认证方法和密钥交换方法,同时提高了服务能力。SSH服务器和客户端通过协商确定最终使用的SSH版本号。
-
算法协商:SSH支持多种加密算法,双方根据各自支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法以及用于数据完整性保护的HMAC算法。
-
密钥交换:服务器和客户端通过密钥交换算法,动态生成共享的会话密钥和会话ID,建立加密通道。会话密钥主要用于后续数据传输的加密,会话ID用于在认证过程中标识该SSH连接。
-
用户认证:SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证。SSH支持以下几种认证方式:
-
- 密码(password)认证:客户端通过用户名和密码的方式进行认证,将加密后的用户名和密码发送给服务器,服务器解密后与本地保存的用户名和密码进行对比,并向客户端返回认证成功或失败的消息。
- 密钥(publickey)认证:客户端通过用户名,公钥以及公钥算法等信息来与服务器进行认证。
- password-publickey认证:指用户需要同时满足密码认证和密钥认证才能登录。
- all认证:只要满足密码认证和密钥认证其中一种即可。
-
会话请求:认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务,即请求与服务器建立相应的会话。
-
会话交互:会话建立后,SSH服务器端和客户端在该会话上进行数据信息的交互。
3.SSH端口号是什么?
- 当SSH应用于STelnet,SFTP以及SCP时,使用的默认SSH端口都是22。当SSH应用于NETCONF时,可以指定SSH端口是22或者830。SSH端口支持修改,更改后当前所有的连接都会断开,SSH服务器开始侦听新的端口。
Xshell
1.Xshell用途
- Xshell是一款功能强大且安全的终端模拟器,可以通过Xshell来查看Ngix的日志、php-fpm日志、和mysql日志(慢查询日志)等,这个是基于ssh协议的登录工具,可以通过命令行接口登录到服务器上面。
- Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的,通俗来讲就是远程操控。
- 实际上XShell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,xShell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。xShell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的xShell程序与其他应用程序具有同样的效果。
screen Linux神器 - 终端
1.背景
- 系统管理员经常使用SSH或Telent远程登录到Liunx服务器,运行一些需要很长时间才能完成的任务。例如,用xshell登录服务器开启jupyter notebook服务供我们远程写代码,通常情况下我们都是为每一个这样的任务开一个远程终端窗口。因为他们执行的时间太长,就必须等待他们执行完,如果在此期间关掉窗口或者断开连接,一切都半途而废。
- 即使关闭xshell,有了Screen,我们的Notebook服务一样不会中断。
- Screen还提供了多窗口和会话共享[Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。]
最常用的终端工具 tmux
1.背景
- 类似Screen的工具,能够在终端出现意外的情况下,确保你的程序还在执行,不会中断,还能将一个终端窗口分离成多个会话,在任务执行时,可以提供很大的便利。
Jupyterlab 数据分析必备IDE完全指南
简介
-
JupyterLab 是 Jupyter 团队为 Jupyter 项目开发的下一代基于 Web 的界面。相对于 Jupyter Notebook,它的集成性更强,更灵活并且更易扩展。它支持100种多种语言,支持多种文档相互集成,实现了交互式计算的新工作流程^1。
-
如果说 Jupyter Notebook 像是一个交互式的笔记本,那么 Jupyter Lab 更像是一个交互式的 VSCode。另外,JupyterLab 非常强大的一点是,你可以将它部署在云服务器,不管是电脑、平板还是手机,都只需一个浏览器,即可远程访问使用。
-
使用 JupyterLab,你可以进行数据分析相关的工作,可以进行交互式编程,可以学习社区中丰富的 Notebook 资料。
类型
JupyterLab 中有如下的 block 类型:
- Notebooks 笔记本,同Jupyter Notebook
- File browser 文件浏览器
- Terminal 终端
- Text Editor 文件编辑器
- Kernels 内核
- Output 输出
Notebook 基本功能
JupyterLab 中的 Notebook 和 Jupyter Notebook 中的使用方法一样。
Cell 类型
-
每一个 Notebook 就是一个kernel,在其中可以包含多个 cell。
-
Cell 的类型有三种,分别为:markdown,code 和 row。
-
运行 cell 的快捷键是:shift + command,大概会你用到最多次的一个快捷键。
-
选择 cell 之后,点击空白处,按下m键,代表转为markdown cell,y键代表转为code cell,同理r键代表转为row cell。
自动补全
与大多数本地 IDE 相同,输入部分代码之后按 tab 键,即可自动补全。Jupyter Lab 中的自动补全显示比之前 Jupyter Notebook 的要友好,通过不同的颜色和图标。显示出了补全的类型。
问号查看详细文档
在函数或变量等后面添加一个问号(?),执行之后,即可查看对应的详细文档:
使用两个问号(??),会显示详细源代码信息:
Magic Code
IPython的一些特殊命令(不是内置于 Python 本身)被称为“魔术”命令。魔术命令是以百分号%为前缀的任何命令。
%matplotlib
最常用的魔法命令,大概就是 %matplotlib了。它用于指定 matplotlib 的后端(backend)。通常我们使用:
%matplotlib inline
代表使用 inline作为后端,直接在 Notebook 中内嵌图片,并且可以省略掉 plt.show() 这一步骤。
%timeit
%timeit 函数检查任何 Python 语句的执行时间,例如:
%run
你可以使用 %run 命令,在Notebook中运行任意的Python文件。例如:
%run add.py
还有其他一些常用命令,例如 %debug、%load_ext 和 %pwd,完整命令可以参考页面。
此外,如想要回到原来的Jupyter Notebook 也是可以的,只需要将链接后面的 Lab 改为 Tree。
知乎搬运
利器|JupyterLab 数据分析必备IDE完全指南 - 知乎 (zhihu.com)
mv: cannot move ‘test_dir/’ to a subdirectory of itself, ‘test_dir/test_dir’
ssh root@region-7.autodl.com 31398
→/tmp/pycharm_project_322
AttributeError: ‘DatasetIterater’ object has no attribute ‘index’
bash: cd…: command not found
root@container-1ec411886c-96679678:~/d# cd …
root@container-1ec411886c-96679678:~# cd /bertclass
bash: cd: /bertclass: No such file or directory
root@container-1ec411886c-96679678:~# pwd
/root
root@container-1ec411886c-96679678:~# cd /bertclass2
bash: cd: /bertclass2: No such file or directory
root@container-1ec411886c-96679678:~# cd bertclass2
root@container-1ec411886c-96679678:~/bertclass2# cd …
root@container-1ec411886c-96679678:~# cd bertclass
root@container-1ec411886c-96679678:~/bertclass# cd Bert-Chinese-Text-Classification-Pytorch-master
root@container-1ec411886c-96679678:~/bertclass/Bert-Chinese-Text-Classification-Pytorch-master# python run.py --model bert
Traceback (most recent call last):
File “run.py”, line 37, in
train(config, model, train_iter, dev_iter, test_iter)
File “/root/bertclass/Bert-Chinese-Text-Classification-Pytorch-master/train_eval.py”, line 66, in train
for i, (trains, labels) in enumerate(train_iter):#trains是(x, seq_len, mask)的tuple组合,作为输入的x
File “/root/bertclass/Bert-Chinese-Text-Classification-Pytorch-master/utils.py”, line 72, in next
if self.residue and self.index == self.n_batches:#剩下那一部分没法归为一个正好的batch
AttributeError: ‘DatasetIterater’ object has no attribute ‘index’
root@container-1ec411886c-96679678:~/bertclass/Bert-Chinese-Text-Classification-Pytorch-master#