Nicksxs's Blog

What hurts more, the pain of hard work or the pain of regret?

对于深度学习只能说我是个门外汉,开始学习,不过很多还搞不懂,做个记录和分享,基于《深度学习入门:基于 Python 的理论与实现》,
第一章 Python 入门就不介绍了,不是重点,不过完全没有 Python 基础的可以看下,我之前算是学过一点点,
第二章我觉得入门的方式比较不错,从感知机入手,有一些顾名思义,感知一些状态(输入),来做出反应,简单的就是比如通电了,我的灯就亮起来了,并且往后就是延伸到了计算机的最基础组成,与或门,与门与或门是最基础的,配合非门进行组成,可以作为计算机基础单元ALU 的组成基础,而更复杂的也可以由此进行搭建,这是个比较通俗的解释,根据书中的定义,感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值,单层的感知机无法实现更复杂的异或门,但是可以通过 2 层感知机来实现,也就是一个与非门,一个或门,作为第一层的感知机,他们的输出作为与门的输入,就可以成为一个异或门。理论上多层感知机可以表示计算机。
而后第三章引出了激活函数,也就是在前面的与或门和基础的感知机的基础上加上了输出的条件,前面与门或门都是最基础的 0,1 游戏,现在可以加上更复杂的判断条件,在输入的基础上配以权重,再加上偏置参数,表示被激活的容易程度,这种激活函数可以被称为阶跃函数,如果超过了一定的值就代表被激活,没有则不激活,但是实际在神经元中被使用的主要是用 sigmoid 函数,相比阶跃函数,sigmoid 函数是一个平滑的曲线,随着输入变化而连续变化,因为相对感知机,神经元需要的信号是连续的实数值信号,再往后则是对输出层的介绍,如果是回归问题,也就是根据输入预测一个(连续的)数值的问题,属于回归问题,可以用恒等函数,而对于分类问题,则使用 softmax 函数,这个函数的一个重要的点在于也是区分于简单的二元分类器,softmax 是将多个结果概率进行数值处理(归一化),也叫做归一化指数函数,对于不同的结果概率是将概率最大的进行放大,凸显其中最大的值并抑制远低于最大值的其他分量。使得其他概率值也能够被使用,但是减弱其份额权重。

之前在 wsl 1 中开启 ssh 其实很方便,只要把 sshd 服务起来就好了,但是在 wsl 2 中就不太一样了,
我这边使用的是 wsl 2 中的 Ubuntu 20.04,直接启动 sshd 服务是没法让其他机器连接的,而且都没有 ifconfig 命令可以查看 ip
不过可以用直接用 ip a来查看,可以看到这个 ip 是172网段的,而在 wsl 1 中可以看到 ip 就是 win 的 ip,
所以需要做一些操作,首先要安装 openssl-server

1
2
sudo apt update
sudo apt install openssh-server

另外如果需要提高安全性,可以wsl 中配置 hosts.allow

1
sshd:192.168.xx.

先定一个子网段,然后对于ssh的配置,可以做以下修改

1
2
Port 22
PasswordAuthentication yes

在进行重启

1
sudo service ssh --full-restart

配置以后发现上面的问题,没法远程登录,因为 wsl 2 是基于 hyper-v 虚拟机实现的,并且 ip 使用的是一个虚拟出来的子网 ip,所以需要在 Windows 这一层配置端口的转发,可以通过命令netsh interface portproxy show v4tov4看到

截图是我已经添加好了的,先把原来的删除,再进行添加

1
2
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=22
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=172.19.129.207 connectport=22

也可以全量删除

1
netsh int portproxy reset all

但是这样也不能直接访问了,还需要开启防火墙

1
netsh advfirewall firewall add rule name="WSL SSH" dir=in action=allow protocol=TCP localport=22

在本地使用了 valet 做 php 的开发环境,因为可以指定自定义域名和证书,碰巧最近公司的网络环境比较糟糕,就想要在自定义 dns 上下点功夫,本来我们经常要在 dns 那配置个内部的 dns 地址,就想是不是可以通过 dnsmasq 来解决,
却在第一步碰到个低级的问题,在 dnsmasq 的主配置文件里
我配置了解析文件路径配置
像这样

1
resolv-file=/opt/homebrew/etc/dnsmasq.d/resolv.dnsmasq.conf

结果发现 dnsmasq 就起不来了,因为是 brew 服务的形式起来,发现日志也没有, dnsmasq 配置文件本身也没什么日志,这个是最讨厌的,网上搜了一圈也都没有, brew services 的服务如果启动状态是 error,并且服务本身没有日志的话就是一头雾水,并且对于 plist 来说,即使我手动加了标准输出和错误输出,brew services restart 的时候也是会被重新覆盖,
后来仔细看了下这个问题,发现它下面有这么一行配置

1
conf-dir=/opt/homebrew/etc/dnsmasq.d/,*.conf

想了一下发现这个问题其实很简单,dnsmasq 应该是不支持同一配置文件加载两次,
我把 resolv 文件放在了同一个配置文件目录下,所以就被加载了两次,所以改掉目录就行了,但是目前看 dnsmasq 还不符合我的要求,也有可能我还没完全了解 dnsmasq 的使用方法,我想要的是比如按特定的域名后缀来配置对应的 dns 服务器,这样就不太会被影响,可以试试 AdGuard 看

之前在使用 smb 协议在 Windows 中共享磁盘使用映射网络驱动器的时候,如果前一次登录过账号密码后面有了改动,或者前一次改错了,
就会出现这样的提示

应该是 Windows 已经把之前的连接记录下来了,即使是链接不成功的
可以通过在 cmd 或者 powershell 执行 net use 命令查看当前已经连接的

这样就可以用命令来把这个删除
net use [NETNAME] /delete
比如这边就可以
net use \\xxxxxxxx\f /delete
然后再重新输入账号密码就好了
关于net use的命令使用方式可以参考

1
2
3
net use [{<DeviceName> | *}] [\\<ComputerName>\<ShareName>[\<volume>]] [{<Password> | *}]] [/user:[<DomainName>\]<UserName] >[/user:[<DottedDomainName>\]<UserName>] [/user: [<UserName@DottedDomainName>] [/savecred] [/smartcard] [{/delete | /persistent:{yes | no}}]
net use [<DeviceName> [/home[{<Password> | *}] [/delete:{yes | no}]]
net use [/persistent:{yes | no}]

官方链接

博客之前使用的是 local search,最开始感觉使用体验还不错,速度也不慢,最近自己搜了下觉得效果差了很多,不知道是啥原因,所以接入有 next 主题支持的 Algolia 搜索,next 主题的文档已经介绍的很清楚了,这边就记录下,
首先要去 Algolia 开通下账户,创建一个索引

创建好后要去找一下 api key 的配置,这个跟 next 主题的说明已经有些不一样了
在设置里可以找到

这里默认会有两个 key

一个是 search only,一个是 admin key,需要再创建一个自定义 key
这个 key 需要有这些权限,称为 High-privilege API key, 后面有用

然后就是到博客目录下安装

1
2
cd hexo-site
npm install hexo-algolia

然后在 hexo 站点配置中添加

1
2
3
4
algolia:
applicationID: "Application ID"
apiKey: "Search-only API key"
indexName: "indexName"

包括应用 Id,只搜索的 api key(默认给创建好的那个),indexName 就是最开始创建的 index 名,

1
2
3
4
export HEXO_ALGOLIA_INDEXING_KEY=High-privilege API key # Use Git Bash
# set HEXO_ALGOLIA_INDEXING_KEY=High-privilege API key # Use Windows command line
hexo clean
hexo algolia

然后再到 next 配置中开启 algolia_search

1
2
3
4
5
# Algolia Search
algolia_search:
enable: true
hits:
per_page: 10

搜索的界面其实跟 local 的差不多,就是搜索效果会好一些

也推荐可以搜搜过往的内容,已经左边有个热度的,做了个按阅读量排序的榜单。

0%