• Kaggle-Digit Recognizer


    Digit Recognizer

    KNN的方法:

    遇到的问题(issue)

    • toInt()函数,是将字符串转换为整数,因为从csv文件读取出来的,是字符串类型的,比如‘253’,而我们接下来运算需要的是整数类型的,因此要转换,int(‘253’)=253。toInt()函数实现功能
    • 主要是数据预处理:参考代码是py2.7的,我改为3.5遇到了几个坑
    • 'dict' object has no attribute 'iteritems' Python3.5中:iteritems变为items
    • python 3.5: TypeError: a bytes-like object is required, not 'str';出现该错误往往是通过open()函数打开文本文件时,使用了‘rb’属性
    • 但是result的格式不对(没有头,然后隔行有数),然后自己开始对CSV格式操作不熟,费了很大的劲才弄成提交的格式
    • 那么获得奇数的语句print x[::2];偶数的语句print x[1::2]
    
    import csv
    
    def saveCsvfile(listfile):
        csvfile = open('kNN_Digit Recognize.csv', 'w', newline = '')
        #要有参数 newline = '' 否则会出现每一行后空一行的现象。
        writer = csv.writer(csvfile)
        writer.writerow(['ImageId', 'Label']) #标题
        data = []
        for i in enumerate(listfile):
            data.append((i[0]+1,i[1])) #enumerate的序号是从0开始的,所以要加1
        writer.writerows(data)
        csvfile.close()
    
    
    • 处理完整个数据集耗费了大概三个半小时的时间,实在是令人无语啊,其中这也是kNN的一个缺点,每次都要计算测试样本与所有训练样本的距离,计算量实在太大

    CNN实现

    • tensorflow平台
    • 完整的tensorflow实现两个卷积(conv+relu+pool)+两个fc
    • 其中将训练,验证,测试完整实现,可视化卷积特征;代码写法很值得学习
    • 参考:https://www.kaggle.com/ranjiewen/tensorflow-deep-nn
    • precision:0.99242
    • 2017.09.17实践

    遇到的问题(issue)

    • 基本都是按照kernel实现,很清楚
    • 训练的电脑需要用GPU,可能会快些,内存消耗比较大
    • 尝试修改参数,能否提高指标
    • 改进点:1.改网络结构添加卷积层,做两个卷积操作然后在maxpool; 2.做数据增强(Data augmentation)

    CNN+BN-method3

    • 参考:https://www.kaggle.com/ranjiewen/99-45-cnn-batchnorm-ensembling
    • 跑完代码整体感觉,代码可读性不强,没有之前method2的封装好
    • 同样的代码在windows(py3.5)下和utuntu(py2.7)效果不一样,有些用法不一样,比如py2.7除法需要加float类型转换
    • epoch=1,精度不好0.8+;当epoch=10时:precision:0.9887
    • 作者说自己能达到0.99+,不知道怎么finetune的方法
    • 可读性没有method2
    • 2017.10.30实践

    ResNet_method4

    Keras-cnn-method5

    Reference

  • 相关阅读:
    显卡关键词
    为照顾IE6尽量不要margin和padding
    如何保证一个类只有一个实例(1)
    显示列表(display list)
    AutoCAD2007与Office2007冲突
    虚函数(1)
    字符串对象的属性
    细读cow.osg
    常量折叠(const folding)与复写传播 (copy propagation)
    .NET Framework 3.5 sp1离线安装
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/7768261.html
Copyright © 2020-2023  润新知