Ubuntu Crontab中执行gsettings命令的问题
在Ubuntu下你可能会有这么个需求,定时更换壁纸,或者定时设置系统代理,首先想到的应该是通过Crontab定时任务去执行`gsettings`命令,这样可以做到更换壁纸或设置系统代理。
脚本写好了,手动测试下没有问题,设置好Crontab让它定时执行,到了设置的时间点,定时任务也执行了,也没报错,但就是没有生效。
问题出在哪呢?
Home of Little Jelly
在Ubuntu下你可能会有这么个需求,定时更换壁纸,或者定时设置系统代理,首先想到的应该是通过Crontab定时任务去执行`gsettings`命令,这样可以做到更换壁纸或设置系统代理。
脚本写好了,手动测试下没有问题,设置好Crontab让它定时执行,到了设置的时间点,定时任务也执行了,也没报错,但就是没有生效。
问题出在哪呢?
前面我们讲了通过Python自动化修改Windows的系统代理,那么在Linux下是不是也可以呢?
在Linux下我们通过Shell/终端就可以实现自动化修改了。
分两种应用场景,一种是在终端中使用的代理,一种是系统级别的代理。
在上一篇中我们讲到使用Squid和Stunnel创建代理服务,其中配置的Squid是需要认证的,也就是需要提供用户名密码才可以访问代理服务。
在一些对安全性要求不高的场景下,可能不需要这种认证,直接访问就好了。
怎么实现呢?
我们知道在Windows系统下,在设置里可以配置网络代理,那可不可以通过程序自动化修改呢?
答案是可以!Python语言就可以!
Python是通过`winreg`标准库修改注册表达到修改Windows系统代理的目的。
直接上代码:
Django下新建了一个app,名为test,并在其下的`models.py`中编写好了模型,但是执行迁移`python manage.py makemigrations`却提示`No changes detected`,也就是没有检测到模型的更改。
再把app的名字也加上
提示又变为`No installed app with label ‘test’`,看来是没有找到这个app。
阿里云可以通过API自动化管理ECS实例,包括创建、启动、停止、释放、分配IP等操作,对于自动化的运维来说非常方便。
官方文档中给出了通过Python SDK创建和批量创建ECS的示例代码,虽有点小问题,但基本上可以用。
首先是硬盘类型的选择,`cloud_ssd`基本不可用了,会报错,改为企业级固态,即`cloud_essd`,代码如下
Python下载并解压zip文件,这在不同的机器上做机器学习和深度学习时是很有用的。
在本地创建好数据集后,上传到公共空间上,自己和其他人就可以在别的机器上直接下载并解压使用,省时省力。
代码如下:
PyTorch图片识别注意点
1. 图片尺寸要统一;
2. 图片格式要统一,全部jpg或全部png,不然Tensor维度不一样会报错;
3. `NeuralNetwork`的第一个`nn.Linear`函数,第一个参数要与图片尺寸保持一致,不然会报错 mat1 and mat2 shapes cannot be multiplied;
4. `NeuralNetwork`的最后一个`nn.Linear`函数,第二个参数要与分类的个数保持一致,不然会报错`target2 is out of bound`;
Google Colab默认使用的是CPU训练,Xeon双核的,性能较弱,也有免费的GPU和TPU实例可以选,怎么使用呢?
如果要更改运行时类型,依次点击菜单栏`代码执行程序`->`更改运行时类型`,硬件加速器改为GPU。TPU实例对免费用户来说几乎不可用。
改完之后重新运行代码即可。
查看所使用的GPU
仿照PyTorch官网的衣服的例子自己写了个图片识别模型,算是自己的第一个PyTorch模型,记录下过程。
一路踩坑是免不了的。
自定义Dataset
官网给出的`CustomImageDataset`的代码大体可用,需要根据自己的图片存入路径和csv文件格式稍做修改。