• 鱼书初级学习笔记


    1. 感知机和神经元的比较

       不同点:感知机中流动的只能是0或1信号,而神经元中流动的是连续的实数值信号(阶跃函数和sigmoid函数,均是非线性函数)。
       相同点:输入的信号越小,输出信号越接近0,输入的信号越大,输出的信号越接近1,输出的信号在0-1之间。
    

    2. im2col函数

    def im2col(input_data, filter_h, filter_w, stride=1, pad=0):
        """
        Parameters
        ----------
        input_data : 由(数据量, 通道, 高, 长)的4维数组构成的输入数据
        filter_h : 卷积核的高
        filter_w : 卷积核的长
        stride : 步幅
        pad : 填充
    
        Returns
        -------
        col : 2维数组
        """
        # 输入数据的形状
        # N:批数目,C:通道数,H:输入数据高,W:输入数据长
        N, C, H, W = input_data.shape
        out_h = (H + 2*pad - filter_h)//stride + 1  # 输出数据的高
        out_w = (W + 2*pad - filter_w)//stride + 1  # 输出数据的长
        # 填充 H,W
        img = np.pad(input_data, [(0,0), (0,0), (pad, pad), (pad, pad)], 'constant')
        # (N, C, filter_h, filter_w, out_h, out_w)的0矩阵
        col = np.zeros((N, C, filter_h, filter_w, out_h, out_w))
    
        for y in range(filter_h):
            y_max = y + stride*out_h
            for x in range(filter_w):
                x_max = x + stride*out_w
                col[:, :, y, x, :, :] = img[:, :, y:y_max:stride, x:x_max:stride]
        # 按(0, 4, 5, 1, 2, 3)顺序,交换col的列,然后改变形状
        col = col.transpose(0, 4, 5, 1, 2, 3).reshape(N*out_h*out_w, -1)
        return col
    
    import sys,os
    sys.path.append(os.pardir)
    x1 = np.random.rand(1,3,5,5)
    print(x1)
    
    
    [[[[0.39906607 0.69938209 0.59171303 0.468406   0.46675132]
       [0.77753727 0.44925231 0.22105801 0.35117425 0.0497251 ]
       [0.39079804 0.74720362 0.35406528 0.40746943 0.63856242]
       [0.77393206 0.18658462 0.66966324 0.67289867 0.84813232]
       [0.18346945 0.662958   0.09471252 0.12607397 0.74529671]]
    
      [[0.77488997 0.61426808 0.69190822 0.88215239 0.4397761 ]
       [0.69099156 0.14725386 0.36411181 0.20350791 0.32109713]
       [0.3825959  0.00946471 0.03664586 0.86738054 0.56845658]
       [0.62861975 0.48352488 0.71966828 0.70285641 0.15258299]
       [0.83992643 0.25291423 0.72544312 0.70858671 0.93213547]]
    
      [[0.80501398 0.70382509 0.13388217 0.79333062 0.73382662]
       [0.60350564 0.75870046 0.37966041 0.82520865 0.86977478]
       [0.1097968  0.068448   0.56369    0.2317281  0.15309575]
       [0.83450657 0.35369833 0.48877413 0.13752027 0.72475119]
       [0.96570697 0.68866113 0.51738769 0.64353873 0.03185289]]]]
    
    coll = im2col(x1,2,2,stride=1,pad=0)
    print(coll.shape)
    print(coll)
    
    
    # 按照卷积核,每次横向展开
    # 第一次
    # [0.39906607 0.69938209]
    # [0.77753727 0.44925231]
    # im2col展开后
    # 0.39906607 0.69938209 0.77753727 0.44925231
    # 同行拼接的是下一个通道同样位置的数据
    (16, 12)
    [[0.39906607 0.69938209 0.77753727 0.44925231 0.77488997 0.61426808
      0.69099156 0.14725386 0.80501398 0.70382509 0.60350564 0.75870046]
     [0.69938209 0.59171303 0.44925231 0.22105801 0.61426808 0.69190822
      0.14725386 0.36411181 0.70382509 0.13388217 0.75870046 0.37966041]
     [0.59171303 0.468406   0.22105801 0.35117425 0.69190822 0.88215239
      0.36411181 0.20350791 0.13388217 0.79333062 0.37966041 0.82520865]
     [0.468406   0.46675132 0.35117425 0.0497251  0.88215239 0.4397761
      0.20350791 0.32109713 0.79333062 0.73382662 0.82520865 0.86977478]
     [0.77753727 0.44925231 0.39079804 0.74720362 0.69099156 0.14725386
      0.3825959  0.00946471 0.60350564 0.75870046 0.1097968  0.068448  ]
     [0.44925231 0.22105801 0.74720362 0.35406528 0.14725386 0.36411181
      0.00946471 0.03664586 0.75870046 0.37966041 0.068448   0.56369   ]
     [0.22105801 0.35117425 0.35406528 0.40746943 0.36411181 0.20350791
      0.03664586 0.86738054 0.37966041 0.82520865 0.56369    0.2317281 ]
     [0.35117425 0.0497251  0.40746943 0.63856242 0.20350791 0.32109713
      0.86738054 0.56845658 0.82520865 0.86977478 0.2317281  0.15309575]
     [0.39079804 0.74720362 0.77393206 0.18658462 0.3825959  0.00946471
      0.62861975 0.48352488 0.1097968  0.068448   0.83450657 0.35369833]
     [0.74720362 0.35406528 0.18658462 0.66966324 0.00946471 0.03664586
      0.48352488 0.71966828 0.068448   0.56369    0.35369833 0.48877413]
     [0.35406528 0.40746943 0.66966324 0.67289867 0.03664586 0.86738054
      0.71966828 0.70285641 0.56369    0.2317281  0.48877413 0.13752027]
     [0.40746943 0.63856242 0.67289867 0.84813232 0.86738054 0.56845658
      0.70285641 0.15258299 0.2317281  0.15309575 0.13752027 0.72475119]
     [0.77393206 0.18658462 0.18346945 0.662958   0.62861975 0.48352488
      0.83992643 0.25291423 0.83450657 0.35369833 0.96570697 0.68866113]
     [0.18658462 0.66966324 0.662958   0.09471252 0.48352488 0.71966828
      0.25291423 0.72544312 0.35369833 0.48877413 0.68866113 0.51738769]
     [0.66966324 0.67289867 0.09471252 0.12607397 0.71966828 0.70285641
      0.72544312 0.70858671 0.48877413 0.13752027 0.51738769 0.64353873]
     [0.67289867 0.84813232 0.12607397 0.74529671 0.70285641 0.15258299
      0.70858671 0.93213547 0.13752027 0.72475119 0.64353873 0.03185289]]
    
  • 相关阅读:
    ATM+购物车项目
    python基础语法13 内置模块 subprocess, 正则表达式re模块, logging日志记录模块, 防止导入模块时自动执行测试功能, 包的理论
    kvm ip查看
    tar 排除某个目录
    MySQL5.7 添加用户、删除用户与授权
    tomcat 自带jdk
    django examples 学习笔记(1)创建一个独立的python环境
    cdh 安装组件 异常总结
    pycharm ubuntu安装
    (cdh)hive 基础知识 名词详解及架构
  • 原文地址:https://www.cnblogs.com/lelezuimei/p/14226914.html
Copyright © 2020-2023  润新知