后边任务
0801的问题以及错误#解决的了
0731的陈方师哥代码那里也没有解决的呢。#基本明白了
1.
怎么用服务器跑。
1.登入浪潮服务器,申请自己的账户。
2.数据管理,传送tar形式的文件,
3.创建环境,这个需要配置自己的环境,设置GPU根据数据问题来计算
4.点击shell,进行输入地址乱七八糟的东西开始跑起来。
ls是用来查询有什么文件的,cd进入文件,最后的文件是用python main.py
2.
怎么将那几个默认参数表达出来。查一下#没有记错的话,大体知道是啥玩意了。
3.
掌握一种debug能力:
抛不开:路径,CPU,参数,函数,
搜索问题:国内三大网站,谷歌,这四部基本解决
函数问题,单独拿出去,看这个函数。
服务器
加压命令在shell里面执行,tar xvf filename.fail
cd /home 是打开显示目录
ls是打开文件夹命令(按照之前的目录)
找到main文件, 输入 python main.py 就开始跑了。
基本过程:
输入密码
cd /home/chenfang/DDQ
ls
cd failname
ls
main.py
安装小包
1.附加更新包:超链接
1.在官方网站上下载需要的包,放到和main同一个路径之下,import:这个包在conda环境之下就有,还还有这一些包通用。
2.进入根地址:su - root
利用国内主流镜像源pip直接加载。:超链接
具体指令:https://pypi.tuna.tsinghua.edu.cn/simple 模块名.
或者:pip install包 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
弄不明白啊
- 为什么地址被忽略掉了:#被忽略是因为地址错了。
- Could not find a version that satisfies the requirement,还有被警告就不知道了。
错误
ModuleNotFoundError: No module named ‘matplotlib’ 这是说明没有包,加吧
神经网络讲解
未解决的问题:
03周一的字典输出问题
周二的划分数据集以及疑问那个问题。
20200802星期日
error-1
老说这里什么鬼子测试错误。
怎么查看他的模式是CPU还是GPU
#预训练的时候吧,已经把网络设置成了gpu格式,把预训练处理掉就可以了。
心得
第一遍,什么都不输出,能够通过后边放在服务器上测试。
2.
抛不开:路径,CPU,参数,函数,
搜索问题:国内三大网站,谷歌,这四部基本解决
函数问题,单独拿出去,看这个函数。
3.
可以把那个自己分成三分数据
4.gpu
损失函数 优化器,加载数据
陈放师哥代码
1.def data_load(train_path, test_path, batch_size, input_size = 224, num_work=0):#定义加载函数
(括号中的一般指的是自己设定的默认参数。)
2.数据化归一函数
20200803星期一
顺代码,这个代码大致已经跑通,重新一点点的扣
1.第一个就是扣的mean和std这里涉及到了,但是检验数据集我还没有弄,
设置训练和测试的归一化函数参数。
2.加载数据集(dataset,size,shuffle,)
3.加载测试集(参数是一致的,然后就是)
4.这里一个加载网络的,在加载网络中有一个不明所以的pretrained函数不知道什么鬼
5.主函数:
判断是cpu/gpu执行我觉得完全可以用一句来代替
地址放这边了,完全可以出去。
执行数据记载
加载损失函数
加载优化器
以上都是设置参数和预备加载数据
开始训练跑呀:
设置参数,加载数据
循环:
归零优化器
得到输出以及损失函数
反向传播
更新模型
测试:
用指令加载参数
加载数据
循环测试:
得到输出结果
输出最大可能性是谁。
划分数据集
1
sub_dirs = [x[0] for x in os.walk(INPUT_DATA)]#这句话就是将os.walk得到的地址(母地址,子地址)全部都给sub中
2
file_glob = os.path.join(DATA, dir_name, ‘*.’ + extension)#file_glob得到一个文件的目录加文件名
file_list.extend(glob.glob(file_glob))#DATA是到trian目录,dir_name分类目录,extension是后缀。
#file_list里面存的是地址。
3
字典问题:超连接
1.字典输出
for k,v in result.items():
print(k,v)或者print(result.get(“cat”))
2.根据关键词输出: result[label_name]={‘dir’:dir_name,‘training’,training_images,‘testing’,testing_images}key就是label_name。
3.问题:关键是我还是没有办法把关于地址的数字分离出来啊
或者说怎么在这一步上进行分离变量呢。#这个地方问吧
4.
创建字典还不能将一个名字之下的数据放在不同的位置,这个地方就表现的很迷人
#可以不嫌弃麻烦的话 ,函数中定义得时候 将定义四个字典。
20200804星期二
划分数据集
存储照片的想:1.
第一就是将在目前代码的基础上想办法能让地址照片一个个的输出出来,
或者就是整个的输出。
目前来说 最准确的是就是将数据先根据不同的文件夹分解出来。还有就是字典的存储格式是什么。
问题:不可以从定义函数里边之间导出数据,因为涉及到了,字典可以自动存储不同类别的函数。
能够输出,但是没办法存放到别的里面,也就是我还没办法做到单独处理,所以这个问题我打算留着 不动了
第二个就是完全放弃这种存储方式,直接开始一个新的数据存储方式。
这种划分方式日后入坑
接着看代码
心得
1.os.walk用法
1)遍历数据。
可以得到一个三元tupple(dirpath, dirnames, filenames),
sub_dirs = [x[0] for x in os.walk(INPUT_DATA)]
print(sub_dirs)
####################得到:这里意味着,将三个元组存进了x。
[‘F:/pythonfial/kenar/6156_9058_bundle_archive_djp/train’, ‘F:/pythonfial/kenar/6156_9058_bundle_archive_djp/train\cat’, ‘F:/pythonfial/kenar/6156_9058_bundle_archive_djp/train\dog’]
2)os.walk遍历模式,
for root, dirs, _ in os.walk(INPUT_DATA):#这是子文件,dirs子目录,root地址,也是根据root进行循环的,
# 先运行了root这个文件,在看文件里的子文件(从上到下的循环方式),也就是按着OS.walk中(dirpath, dirnames)
print(“root:”,root)#根目录
print(“dirs:”,dirs)#根目录中的子目录
print(":",_)#根目录之下的子文件
lambda
img_names = list(filter(lambda x: x.endswith(’.jpg’), img_names))超链接
大体意思就是对 file_path 进行处理,把 '.log' 结尾的路径重新组成可迭代对象(最好是生成器), 但又不想写 for 循环。这个就是很随意的,原本文件换成可以迭代的。
p漂亮的写法
print("[%d, %d] loss:%.03f" % (epochs + 1, i + 1, train_loss))
[1, 3] loss:0.021
疑问
迭代问题
什么样的数据可以迭代,为什么一定要强调迭代这个动。
迭代:指的是按照某种顺序逐个访问列表中的每一项.比如,for语句
可迭代对象:集合或序列类型(如list、tuple、set、dict、str)文件,以及还有好多,目前理解不来
输出结果保存文本。
open函数
现在突然知道,我没有办法吧np型文件之间写入到TXT,文件中的呀。
debug跳出循环。
20200805/06/07星期三/四/五
任务:完成最后一点代码,完成猫狗大战和现在代码的的对比不同。以及贯通服务器。
明白服务器大体内容,自己配置一个镜像包,安装上anaconda,能用。
看那几本手册。