您的位置:首页 > 财经 > 产业 > 国外设计师_二级分销被国家叫停_软文写作是什么意思_网页优化怎么做

国外设计师_二级分销被国家叫停_软文写作是什么意思_网页优化怎么做

2024/10/6 10:26:52 来源:https://blog.csdn.net/qq_51409113/article/details/142341896  浏览:    关键词:国外设计师_二级分销被国家叫停_软文写作是什么意思_网页优化怎么做
国外设计师_二级分销被国家叫停_软文写作是什么意思_网页优化怎么做

广播

在python中,广播可以简化为“自动扩展匹配”

注意:python中的矩阵运算,都是对应位置的元素之间的运算,即“点运算”。

在神经网络中,主要会用到的两种情况:

  • 向量与常数:

    n n n 维行向量( 1 × n 1×n 1×n 矩阵)和常数进行运算,python 会自动将该常数复制填充成 1 × n 1×n 1×n 矩阵( n n n 维列向量同理,就不写例子了)。
    [ 1 2 3 ] + 100 → [ 1 2 3 ] + [ 100 100 100 ] = [ 101 102 103 ] \left[ \begin{matrix} 1\\ 2\\ 3\\ \end{matrix} \right]+100→\left[ \begin{matrix} 1\\ 2\\ 3\\ \end{matrix} \right]+\left[ \begin{matrix} 100\\ 100\\ 100\\ \end{matrix} \right]=\left[ \begin{matrix} 101\\ 102\\ 103\\ \end{matrix} \right] 123 +100 123 + 100100100 = 101102103

  • 向量与矩阵:

    m × n m×n m×n 矩阵和 n n n 维行向量( 1 × n 1×n 1×n 矩阵)进行运算。python 会自动将该 1 × n 1×n 1×n 矩阵复制填充成 m × n m×n m×n 矩阵( m m m 维列向量同理)。

    举例:
    [ 1 2 3 4 5 6 ] + [ 100 200 300 ] → [ 1 2 3 4 5 6 ] + [ 100 200 300 100 200 300 ] = [ 101 202 303 104 205 306 ] \left[ \begin{matrix} 1 & 2 & 3\\ 4 & 5 & 6 \\ \end{matrix} \right]+\left[ \begin{matrix} 100 & 200 & 300\\ \end{matrix} \right]→\left[ \begin{matrix} 1 & 2 & 3\\ 4 & 5 & 6 \\ \end{matrix} \right]+\left[ \begin{matrix} 100 & 200 & 300\\ 100 & 200 & 300\\ \end{matrix} \right]=\left[ \begin{matrix} 101 & 202 & 303\\ 104 & 205 & 306\\ \end{matrix} \right] [142536]+[100200300][142536]+[100100200200300300]=[101104202205303306]

    [ 1 2 3 4 5 6 ] + [ 100 200 ] → [ 1 2 3 4 5 6 ] + [ 100 100 100 200 200 200 ] = [ 101 102 103 204 205 206 ] \left[ \begin{matrix} 1 & 2 & 3\\ 4 & 5 & 6 \\ \end{matrix} \right]+\left[ \begin{matrix} 100\\ 200\\ \end{matrix} \right]→\left[ \begin{matrix} 1 & 2 & 3\\ 4 & 5 & 6 \\ \end{matrix} \right]+\left[ \begin{matrix} 100 & 100 & 100\\ 200 & 200 & 200\\ \end{matrix} \right]=\left[ \begin{matrix} 101 & 102 & 103\\ 204 & 205 & 206\\ \end{matrix} \right] [142536]+[100200][142536]+[100200100200100200]=[101204102205103206]

☆以上两种情况,两个矩阵的行和列必须要有一个维度相同。

实例

import numpy as np
# 定义矩阵A
A = np.array([[56.0,0.0,4.4,68.0][1.2,104.0,52.0,8.0],[1.8,135.0,99.0,0.9]])
# 沿着矩阵A的纵轴求和
cal = A.sum(axis=0) # axis=1就是沿着横轴求和
print(cal)
# 进行矩阵广播运算
percentage = 100*A/cal.reshape(1,4)
print(percentage)——————————————————————————————————————————————————————————————————————————————————————————————————————
# 输出结果为:
[59  239  155.4  76.9][[94.91525424  0.            2.83140283  88.42652796][ 2.03389831  43.51464435  33.46203346  10.40312094][ 3.05084746  56.48535565  63.70656371   1.17035111]]

代码编写技巧

  • 在创建数组时,数组的维度要交代清楚,行数和列数都要给出:

    • 正确的:

      a = np.random.randn(5,1)  
      # 使用numpy的random模块中的randn函数生成一个5行1列的数组,  
      # 该数组中的元素是从标准正态分布(均值为0,标准差为1的正态分布)中随机抽取的。 
      # 输出结果为五行一列的数组
      
    • 错误的:

      a = np.random.randn(5)  
      # 目的和上边代码块一样
      # 但是没有指代清楚行数和列数,导致输出结果为一个秩为1的数组,既不是行向量,也不是列向量
      
  • 常用附加代码:

    assert a.shape == (5,1)    # 或者
    assert(a.shape == (5,1))   # 或者
    assert[a.shape == (5,1)]   # 在pycharm中通常使用这一个# 这是一个断言语句,用于确保变量a的shape属性(即a的维度)等于(5,1)。
    # 如果断言的条件为假(即表达式的结果为False),则会引发一个AssertionError异常。
    
    a = a.reshape((5,1))
    # 将变量a转换成五行一列的数组。
    

————————————————————————————————————————————————————————

上一篇博客下一篇博客
向量化在梯度下降中的应用初识神经网络

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com