运行代码,并未开始训练,提示:
进程已结束,退出代码135 (interrupted by signal 7: SIGEMT)
通过Debug,定位到util文件夹下s3dis.py文件的一段代码:
for item in self.data_list:
if not os.path.exists("/dev/shm/{}".format(item)):
data_path = os.path.join(data_root, item + '.npy')
data = np.load(data_path) # xyzrgbl, N*7
sa_create("shm://{}".format(item), data)
这段代码是判断ubuntu系统下"/dev/shm"目录下是否有data_list中的文件,如果没有则创建文件,于是进入到该目录,发现data_list的长度为272,而该文件夹下只有106个文件,当再次运行程序后会再次生成下一个文件。
查看该文件夹的属性发现已经没有剩余空间,所有空间都被占用。
经查询,/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上,而/dev/shm的容量默认最大为内存的一半大小,而我当初只给ubuntu分配了16g的内存,因此shm目录只有8g的容量,而s3dis数据集有14g多的大小,因此,需要将该目录调大。
方法1:
>mount -o size=15G -o remount /dev/shm
方法1为一次性设置,当重启系统后,该目录会重新变为默认大小。
方法2:重新挂载
1) 查看大小
df -h /dev/shm
2)修改大小
vi /etc/fstab #进入fatab
tmpfs /dev/shm tmpfs defaults,size=15G 0 0 #修改size参数或直接在末尾添加该行代码
size也可以用M作单位: size=1024M
如果文件中有这行可以直接修改,没有可以在末尾直接添加即可。
3)重新挂载
umount /dev/shm
mount /dev/shm
4)查看修改后的大小
df -h /dev/shm