美文网首页
读On the performance of ConvNet f

读On the performance of ConvNet f

作者: DevOps教练Yu | 来源:发表于2018-10-20 18:50 被阅读0次

    整个代码由python写成,正好再深入学习下一些不太熟悉的用法

    文件similarity_matrix_generator应该是用来生成相似性的矩阵,从这个文件看起,

    源代码:https://github.com/aghagol/loop-detection


    第四行代码:

    from myconf import *
    

    从这里来回顾下python中的import 使用,

    import和from...import...的区别:

    import 模块:导入一个模块;
    注:相当于导入的是一个文件夹,是个相对路径。使用某个函数的时候还是需要在函数前加上这个模块的名称如:
    A.xx()

    from A import XX:导入了一个模块中的一个函数;
    注:相当于导入的是一个文件夹中的一个文件,是个绝对路径,从A模块中导入XX函数
    使用这个函数时不需要加上这个模块名称,可以直接使用:
    xx()

    关于from A import *:
    从 A中导入其中所有的函数,相当于导入一个文件夹下面的所有文件,直接使用函数名就行了


    第八行代码:

    images = [f for f in os.listdir(campath) if f.endswith('.png')]
    

    关于os模块的一些使用可以参考
    http://wiki.jikexueyuan.com/project/explore-python/File-Directory/os.html
    讲解很详细

    注意os.walk的用法(这里可以使用这个方法来代替代码中的遍历方法多一种思路):

    os.walk 是遍历目录常用的模块,它返回一个包含 3 个元素的元祖:(dirpath, dirnames, filenames)。dirpath 是以 string 字符串形式返回该目录下所有的绝对路径;dirnames 是以列表 list 形式返回每一个绝对路径下的文件夹名字;filesnames 是以列表 list 形式返回该路径下所有文件名字。

    for root, dirs, files in os.walk('/Users/ethan/coding'):
         print root #dirpath 返回所有绝对路径包括文件夹里面的文件
         print dirs#dirnames 返回每一个绝对路径下的文件夹名
         print files#返回所有文件名字,只是文件,不是文件夹
    
    

    os.listdir(path)的用法:

    输出path下面的所有文件和目录名称
    返回的是一个list
    例子:

    import os
    path = '/home/python/Desktop/'
    for i in os.listdir(path):
        print(i)
    

    f.endswith(.png)的用法:

    比较好理解,以.png结尾的文件
    但其实也可以用在字符串中,特别的可以加入参数,指定字符串中某一段是否以某一个指定结尾:

    str = "this is string example....wow!!!";
    
    suffix = "wow!!!";
    print str.endswith(suffix);
    print str.endswith(suffix,20);
    
    suffix = "is";
    print str.endswith(suffix, 2, 4);
    print str.endswith(suffix, 2, 6);
    

    f for f in os.listdir(campath)的用法:

    一个高阶的python用法——链表推导式,可以快速构建链表:

    [表达式 for 变量 in 列表 ]

    OR

    [表达式 for 变量 in 列表 if 条件]

    这里可以顺便提一下

    map()函数:

    map(function, iterable, ...)
    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

    匿名函数lambda:

    匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果:

    >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

    >>> f = lambda x: x * x
    >>> f
    <function <lambda> at 0x101c6ef28>
    >>> f(5)
    25
    

    列表sort()函数:

    list.sort(cmp=None, key=None, reverse=False)

    cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。


    待更

    相关文章

      网友评论

          本文标题:读On the performance of ConvNet f

          本文链接:https://www.haomeiwen.com/subject/kftkzftx.html