最近在学习PyTorch,今天想写一个CNN做一下分类,可是问题百出,现将问题整理一下。
环境
Ubuntu14.04+anaconda3+python2
问题描述和解决过程
按照Pytorch实现卷积神经网络CNN 的教程完成了导包、数据预处理、定义网络结构的工作,于是想试一下结果,这个时候问题来了。
我在Ancona的虚拟环境里编写了test.py文件,
以普通用户的身份运行该程序,出现了权限的问题,如下图所示。
先是切换到了root用户下,我的感觉是root权限最大,应该没问题,可是事与愿违,
后来查看python版本,发现是系统自带的版本
我觉得很玄学,在Ancona的环境下切换到root用户,感觉已经跳出来了这个环境,我现在也不能想明白这个事情。大家有什么想法吗?
于是我去查百度,发现https://blog.csdn.net/weixin_39970417/article/details/80494923这篇文章,于是按照他说的修改了权限,可还是不行。最后我发现了问题所在,我的数据集存放的位置在根目录下,把这个路径修改到普通用户下就可以了。
教程里面的路径是:
修改后
这就ok了。
补充知识点
这里我把chmod 和chown搞混了,这里也在记录一下。
linux里面的文件有拥有者和操作的两种属性,chown和chmod正好可以修改这两个属性。
- chown用来修改某个目录或文件的用户名和用户组的
用法: chown 用户名:组名 文件路径
例1:chown root:root /tmp/tmp1
把tmp下的tmp1的用户名和用户组修改成root和root(只修改了tmp1的属组)
例2:chown -R root:root /tmp/tmp1
把tmp下的tmp2下的所有文件的属组都改成root和root。
- chmod修改某个目录或文件的访问权限
用法:chmod [who] [+ | - | =] [mode] 文件名
命令中个选项的含义为:
操作对象who可以是下述字母中的任一个或者组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”,它是系统默认值。
操作符可以是:
+ 添加某个权限
- 取消某个权限
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s 在文件执行时把进程的属主或者组ID设置为改文件的文件属主。
方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限
g 与和文件属主同组的用户拥有一样的权限
o 与其他用户拥有一样的权限