1、函数介绍:
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)
指需要做卷积的输入图像,它要求是一个Tensor(张量),具有 [batch, in_height, in_width, in_channels] 这样的shape,具体含义是 [训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数] ,注意这是一个4维的Tensor,要求类型为float32和float64其中之一。
关于通道: 彩色图片每个像素值是由R,G,B三个原色组合得到的,RGB三原色就是这里的通道。那么此时的图像通道数为3。
相当于CNN中的卷积核,它要求是一个Tensor,具有 [filter_height, filter_width, in_channels, out_channels] 这样的shape,具体含义是 [卷积核的高度,卷积核的宽度,图像通道数,卷积核个数] ,要求类型与参数input相同,有一个地方需要注意,这里的第三维in_channels,就是参数input的第四维in_channels。
卷积时在图像每一维的步长,这是一个一维的向量,长度4。
正如前面所述,strides 是另外一个极其重要的参数,其为一个长度为4 的一维整数类型数组,每一位对应input中每一位对应的移动步长.。步长为一的卷积操作,不补零。
string类型的量,只能是”SAME”,”VALID”其中之一,这个值决定了不同的卷积方式。
padding=’SAME’ 时,TensorFlow会自动对原图像进行补零,从而使输入输出的图像大小一致 。
padding=’VALID’ 时,则会缩小原图像的大小。
SAME:越过边缘取样,取样的面积和输入图像的像素宽度一致。
VALID:不越过边缘取样,取样的面积小于输入人的图像的像素宽度
这里关于”SAME”和”VALID”具体的区别,见视频(斯坦福深度视觉识别课堂)
链接:https://study.163.com/course/courseLearn.htm?courseId=1004697005#/learn/video?lessonId=1050213450&courseId=1004697005
注:请先"食用"以上视频,视频内一些关于”SAME”和”VALID”的公式讲解对于后面代码示例的理解起着很重要的作用!
bool类型,是否使用cudnn加速,默认为true
结果返回一个Tensor,这个输出,就是我们常说的feature map
2、公式计算
条件:padding=’SAME’ 时
举例说明:
数据:一张 [28,28,1] 的图片,卷积层取:100个filter,5*5,步长为1,padding = 1
结果:
- H2 = (28 - 5 + 2*1) / 1 + 1 = 26
- W2 = (28 - 5 + 2*1) / 1 + 1 = 26
3、例子详解:
那么TensorFlow的卷积具体是怎样实现的呢,用一些例子去解释它:
- 考虑一种最简单的情况,现在有一张 3×3 单通道的图像(对应的shape:[1,3,3,1]),用一个1×1的卷积核(对应的shape:[1,1,1,1])去做卷积,最后会得到一张3×3的feature map。
input = tf.Variable(tf.random_normal([1,3,3,1]))
filter = tf.Variable(tf.random_normal([1,1,1,1]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
Tensor("Conv2D_1:0", shape=(1, 3, 3, 1), dtype=float32)
- 增加图片的通道数,使用一张 3×3 五通道的图像(对应的shape:[1,3,3,5]),用一个1×1的卷积核(对应的shape:[1,1,5,1])去做卷积,仍然是一张 3×3 的feature map,这就相当于每一个像素点,卷积核都与该像素点的每一个通道做点积。
input = tf.Variable(tf.random_normal([1,3,3,5]))
filter = tf.Variable(tf.random_normal([1,1,5,1]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
Tensor("Conv2D_2:0", shape=(1, 3, 3, 1), dtype=float32)
- 把卷积核扩大,现在用3×3的卷积核做卷积,最后的输出是一个值,相当于情况2的feature map所有像素点的值求和。
input = tf.Variable(tf.random_normal([1,3,3,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
Tensor("Conv2D_3:0", shape=(1, 1, 1, 1), dtype=float32)
- 使用更大的图片将情况2的图片扩大到5×5,仍然是3×3的卷积核,令步长为1,输出3×3的feature map。
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
Tensor("Conv2D_4:0", shape=(1, 3, 3, 1), dtype=float32)
- 上面我们一直令参数padding的值为‘VALID’,当其为‘SAME’时,表示卷积核可以停留在图像边缘,如下,输出5×5的feature map。
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
Tensor("Conv2D_5:0", shape=(1, 5, 5, 1), dtype=float32)
- 如果卷积核有多个。
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
Tensor("Conv2D_6:0", shape=(1, 5, 5, 7), dtype=float32)
- 步长不为1的情况,文档里说了对于图片,因为只有两维,通常strides取[1,stride,stride,1]。此时,输出7张3×3的feature map。
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))
op = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding='SAME')
Tensor("Conv2D_7:0", shape=(1, 3, 3, 7), dtype=float32)
- 如果batch值不为1,同时输入10张图。每张图,都有7张3×3的feature map,输出的shape就是[10,3,3,7]。
input = tf.Variable(tf.random_normal([10,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))
op = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding='SAME')
Tensor("Conv2D_8:0", shape=(10, 3, 3, 7), dtype=float32)
这里直接看代码很难直观理解”SAME”和”VALID”的区别,所以还是建议先看斯坦福的视频讲解,这样才更具有画面感。
3、跑一遍程序
import tensorflow as tf
#case 2
input = tf.Variable(tf.random_normal([1,3,3,5]))
filter = tf.Variable(tf.random_normal([1,1,5,1]))
op2 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
#case 3
input = tf.Variable(tf.random_normal([1,3,3,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op3 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
#case 4
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op4 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
#case 5
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op5 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
#case 6
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))
op6 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
#case 7
input = tf.Variable(tf.random_normal([1,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))
op7 = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding='SAME')
#case 8
input = tf.Variable(tf.random_normal([10,5,5,5]))
filter = tf.Variable(tf.random_normal([3,3,5,7]))
op8 = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding='SAME')
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print("case 2")
print(sess.run(op2))
print("case 3")
print(sess.run(op3))
print("case 4")
print(sess.run(op4))
print("case 5")
print(sess.run(op5))
print("case 6")
print(sess.run(op6))
print("case 7")
print(sess.run(op7))
print("case 8")
print(sess.run(op8))
结果:
随机数
case 2
[[[[-2.6503515]
[-1.0375758]
[ 3.2205355]]
[[ 2.3051841]
[-4.6123767]
[-1.181335 ]]
[[ 1.3592753]
[ 1.8888522]
[ 3.1005032]]]]
case 3
[[[[0.13944143]]]]
case 4
[[[[ 0.33751982]
[ 1.8425229 ]
[-0.13743114]]
[[ 1.6682582 ]
[-2.184636 ]
[ 3.0355518 ]]
[[ 6.4875245 ]
[-2.6352134 ]
[-5.2027345 ]]]]
case 5
[[[[-1.7225199 ]
[ 5.0439734 ]
[-1.6586859 ]
[ 3.8357215 ]
[-1.8684336 ]]
[[-1.6515994 ]
[-4.7386847 ]
[ 5.1411996 ]
[ 2.9090686 ]
[ 1.4939682 ]]
[[ 3.4938772 ]
[ 1.1135409 ]
[-3.360897 ]
[-7.2671027 ]
[ 1.8609387 ]]
[[-2.492307 ]
[ 2.0535913 ]
[ 0.32793647]
[ 6.2135487 ]
[ 0.59462893]]
[[ 2.5566835 ]
[-3.235322 ]
[-4.13678 ]
[ 3.8042483 ]
[ 2.4603622 ]]]]
case 6
[[[[-1.0677772e+00 3.7658997e+00 -3.9817333e+00 -9.4223791e-01
2.2805264e+00 -4.2848244e+00 3.1476722e+00]
[-6.5194494e-01 3.4326324e+00 2.2112308e+00 3.4893143e-01
-2.3323674e+00 -4.1694703e+00 2.7153244e+00]
[ 8.6136818e+00 2.8629060e+00 8.4590788e+00 -9.3799715e+00
-5.9354906e+00 -3.8959486e+00 5.5099730e+00]
[ 3.7973070e+00 -1.6449393e+00 8.1180735e+00 6.3407879e+00
2.7429240e+00 6.7974825e+00 1.4881713e+00]
[-5.5665751e+00 2.1002930e-01 2.9764504e+00 -1.0111668e+00
1.3679842e+01 8.7976341e+00 -3.2712770e+00]]
[[-9.7927749e-01 -1.9145925e+00 1.1294954e+01 -6.6619544e+00
-6.1894375e-01 -3.8345678e+00 -2.5013337e-01]
[ 7.5762587e+00 3.2353745e+00 2.1486576e+00 4.8535800e+00
-1.6057861e+01 7.2287049e+00 6.2255569e+00]
[-3.4788804e+00 -8.5947189e+00 -4.0501451e+00 -7.1439576e+00
1.0869201e+01 1.3378110e+01 -8.2319415e-01]
[ 9.9060955e+00 8.6582184e+00 3.2699323e+00 3.7823541e+00
-5.2032661e+00 1.8056257e+00 -1.8582941e+00]
[ 1.3903780e+00 4.1723299e+00 -1.3241332e+01 -1.1883872e+00
6.7449837e+00 -4.0390487e+00 -4.9548674e+00]]
[[-1.1378351e+01 -5.0658321e+00 -2.7271309e+00 -3.3417435e+00
3.5533526e+00 5.9811740e+00 -7.8983984e+00]
[ 1.5670161e+00 -7.3668914e+00 -3.4377124e+00 6.0529790e+00
6.5769762e-01 4.0028243e+00 -8.8434410e+00]
[-1.6988711e+00 -6.3551307e+00 -5.4421363e+00 1.0345247e+01
5.7832851e+00 -9.7529726e+00 -1.7760789e+00]
[ 6.5771680e+00 8.3997667e-01 -2.1060233e+00 7.5008020e+00
-8.1126575e+00 1.9960071e+00 3.2874904e+00]
[ 1.4907375e-02 7.0832639e+00 -7.2954011e+00 -2.8318313e-01
-9.0794048e+00 -9.2636099e+00 6.3781967e+00]]
[[-2.7626898e+00 6.1345906e+00 -2.7611961e+00 -1.1966963e+01
-3.7181137e+00 -2.0485661e+00 2.0847332e+00]
[-2.0211015e+00 -8.7023773e+00 3.3005995e-01 2.9431946e+00
1.1344383e+00 -6.5473065e+00 9.9533510e-01]
[-9.3544779e+00 2.7491477e+00 -7.4307394e+00 -4.0808001e-01
8.2780534e-01 7.8630438e+00 -3.6143463e+00]
[ 5.0698133e+00 3.4150863e+00 -3.1426444e+00 9.9178143e+00
1.7839801e+00 -5.2770524e+00 -1.0843438e+01]
[-3.3881450e+00 -7.7907562e+00 9.3992157e+00 1.8773689e+00
2.1110797e+00 7.5816689e+00 -1.8212395e+00]]
[[ 4.0922737e+00 -4.6190658e+00 -6.5382452e+00 -6.6110296e+00
1.6576998e+00 -1.5000936e+00 4.8058281e+00]
[ 3.1514001e-01 -5.0535436e+00 5.4777247e-01 9.5464363e+00
-4.9340353e+00 -1.6653299e-01 -2.0886359e+00]
[ 1.2225825e+00 7.3586559e+00 -4.5690956e+00 -9.7287279e-01
2.4605423e-01 -1.2935278e+00 -9.0261497e+00]
[-2.1486490e+00 -2.1046133e+00 2.0408137e+00 -2.5641994e+00
-4.2338979e-01 -1.7947196e+00 3.3415923e+00]
[-9.1365498e-01 -1.6516781e+00 -2.9323335e+00 -1.7294403e+00
2.0476091e+00 -2.7375740e-01 1.6675184e+00]]]]
case 7
[[[[-0.29636097 9.373593 -0.18701422 -2.303901 -1.6324565
-3.6836433 -2.5039492 ]
[-2.6049545 -9.808384 1.4283214 8.139784 6.800718
3.8024912 15.72274 ]
[ 3.6057496 -1.1641582 -4.5272226 0.14382496 8.098335
6.276072 -3.924404 ]]
[[-7.70918 6.1383586 5.3004646 2.5717027 0.75847167
-2.8945882 -0.6284474 ]
[-8.377144 -2.3167253 -2.8781946 -0.8142196 1.8900888
-6.919139 9.296962 ]
[-4.047793 1.5854206 6.6880145 7.07077 2.381598
7.4366255 10.760042 ]]
[[ 0.701258 -3.0242436 -2.464449 1.1138455 -2.649603
1.6753296 2.1147983 ]
[-3.4156113 1.2964635 1.2267787 4.8821154 -1.4771008
5.053837 1.1728425 ]
[-3.043054 2.5369613 -0.8059899 5.0289836 2.9299252
-4.409099 -0.17498453]]]]
case 8
[[[[-2.43503165e+00 -4.64917040e+00 9.71334362e+00 1.60066557e+00
4.17192316e+00 -8.13928318e+00 4.47697449e+00]
[ 3.69883895e+00 7.22877693e+00 9.96146351e-03 -7.62039471e+00
-2.04245257e+00 -8.27284527e+00 1.98402417e+00]
[ 3.17849898e+00 3.13606441e-01 -3.28360271e+00 2.32942104e+00
1.10208249e+00 3.33590126e+00 1.78776813e+00]]
[[-1.31769359e+00 2.64538109e-01 -1.33387983e+00 -1.54751110e+00
-2.46891403e+00 1.40250218e+00 2.22283554e+00]
[ 5.52561140e+00 1.47438240e+00 3.71456742e+00 -4.21708441e+00
-1.13226204e+01 -1.21959867e+01 6.62427425e+00]
[ 3.14325619e+00 -4.69703770e+00 3.39164448e+00 9.42636490e+00
-1.50525928e+00 2.61115289e+00 6.15589666e+00]]
[[ 2.72436905e+00 2.35334301e+00 6.76196194e+00 -9.83925104e-01
5.27484989e+00 1.23019779e+00 -6.86056674e-01]
[-3.58359981e+00 8.00316215e-01 -1.06482067e+01 5.92168951e+00
-5.52154589e+00 1.50686741e+00 1.06624012e+01]
[-1.92024374e+00 2.10542536e+00 4.81609046e-01 -2.37800503e+00
-2.08046794e+00 -5.46501827e+00 -7.37097144e-01]]]
[[[-3.45995355e+00 -3.58174372e+00 8.38699436e+00 6.03926563e+00
1.75742596e-01 -5.21123171e+00 2.18443918e+00]
[-1.95896435e+00 2.85725880e+00 2.73454523e+00 -6.16381025e+00
5.18142605e+00 -9.71978855e+00 -1.80913079e+00]
[ 3.16523218e+00 5.40228605e-01 -4.85863829e+00 3.61389145e-02
4.53521729e-01 -4.40869713e+00 3.91369820e-01]]
[[-1.22080362e+00 -2.45506263e+00 -6.50511122e+00 -9.92690659e+00
-9.10349274e+00 6.92991376e-01 1.68613923e+00]
[-1.27511930e+00 1.21830349e+01 -1.59598808e+01 1.86113954e+00
-6.87263393e+00 2.88696766e+00 8.85591412e+00]
[-5.11548090e+00 1.57626724e+00 6.62785959e+00 -4.01723242e+00
2.25763559e-01 3.48141050e+00 1.05578542e+00]]
[[-2.43565917e+00 5.06198704e-02 7.89867342e-02 5.52735949e+00
-6.29871750e+00 -6.78808737e+00 6.02368546e+00]
[-1.58791137e+00 -7.30863571e+00 7.25494146e+00 -2.86152935e+00
-5.79072475e-01 -4.85758209e+00 -1.35221386e+01]
[ 2.00788021e+00 -1.28706396e+00 7.30645275e+00 -1.51654887e+00
-2.93373013e+00 3.24968958e+00 2.07446504e+00]]]
[[[ 1.47663260e+00 -1.66577733e+00 -4.68187302e-01 -4.40788460e+00
1.57865822e+00 9.18357944e+00 -3.84802675e+00]
[-6.34598637e+00 -1.03087568e+01 -5.62618971e+00 4.93165135e-01
-6.82930517e+00 -2.16899920e+00 3.41279936e+00]
[-7.36118376e-01 -1.07139330e+01 8.27233315e-01 -3.50418568e+00
-8.79960537e-01 1.80743551e+00 7.54889965e-01]]
[[-2.39193225e+00 4.89767408e+00 -6.87775850e+00 2.85034680e+00
1.28973055e+00 -1.00746737e+01 1.98001802e+00]
[-5.44957495e+00 1.16618366e+01 -4.19383001e+00 -7.50283623e+00
1.57499933e+01 -8.22385216e+00 -6.96089506e+00]
[-7.57135868e+00 2.38450527e-01 -4.16470003e+00 2.56574368e+00
3.87789965e+00 -5.46751499e+00 -3.06655502e+00]]
[[ 4.77401781e+00 4.92737055e+00 -8.65843105e+00 4.39800644e+00
6.17356586e+00 1.07743273e+01 -2.98865795e+00]
[-2.05200076e+00 -2.52446389e+00 -5.61121273e+00 -6.08385324e+00
-6.68696880e+00 -5.59458685e+00 1.23274159e+00]
[-1.61720848e+00 -5.73497105e+00 2.78036690e+00 2.58634496e+00
-7.05902863e+00 -4.61862373e+00 3.14683771e+00]]]
[[[-3.01080155e+00 1.56606352e+00 7.81431258e-01 -1.06451283e+01
2.58846426e+00 -9.62799835e+00 -5.88369668e-01]
[ 9.04411602e+00 4.40151215e+00 -6.34725952e+00 1.77033603e-01
3.14715552e+00 -4.49144602e+00 5.12420416e+00]
[-2.16371477e-01 3.81645155e+00 3.52430034e+00 -3.82941389e+00
1.07874451e+01 -4.57526064e+00 2.88426638e-01]]
[[-4.79983234e+00 1.09436436e+01 -1.01117430e+01 -5.46235609e+00
7.13531733e-01 -2.26296258e+00 1.45773578e+00]
[-5.46673775e+00 4.13977146e+00 1.40547156e+00 -6.54950321e-01
1.30899563e+01 -8.56194019e+00 -2.77533269e+00]
[-2.13883495e+00 -3.11756611e-01 8.69966030e+00 1.03890896e-03
5.16218948e+00 -4.19220734e+00 -9.26130295e-01]]
[[-2.28714490e+00 6.81624508e+00 -1.36544571e+01 2.62786007e+00
2.68297195e-02 -5.42932320e+00 1.37810445e+00]
[-4.50767136e+00 1.80205810e+00 -9.80516720e+00 -4.14874363e+00
5.30269146e-02 -3.51967573e+00 -1.01494491e+00]
[ 4.74610710e+00 -7.15823054e-01 2.41561270e+00 1.19406927e+00
-3.55317402e+00 1.30476785e+00 -3.05470562e+00]]]
[[[-7.07337618e+00 -7.85925150e-01 -2.43050718e+00 1.34648056e+01
-9.86674976e+00 -5.15005779e+00 8.80297780e-01]
[-4.34971189e+00 3.71151495e+00 -4.80075741e+00 -1.92668962e+00
-8.06532764e+00 -1.21604624e+01 -2.43862963e+00]
[-1.51999688e+00 8.30902863e+00 -7.00110531e+00 -4.00356579e+00
7.91852951e-01 8.90307665e-01 2.81202507e+00]]
[[ 7.95564079e+00 2.64739966e+00 -6.19836760e+00 2.08548769e-01
-3.53477955e+00 3.14061332e+00 4.47812462e+00]
[-5.15523434e+00 4.68234634e+00 -1.23273873e+00 6.75749969e+00
4.22649288e+00 5.30700922e+00 1.23799925e+01]
[-1.63054001e+00 4.49672747e+00 -8.46346021e-02 4.38079023e+00
1.04827156e+01 -4.88728714e+00 -4.09714699e+00]]
[[-2.33532333e+00 -1.28325689e+00 -1.70325077e+00 1.40949583e+00
-1.12027001e+00 3.77907276e-01 8.40192986e+00]
[-1.17996001e+00 -6.25882387e+00 2.35458469e+00 -3.15497935e-01
-1.24283981e+00 -1.23384118e+00 -1.42703953e+01]
[ 5.96083105e-01 -2.22654715e-01 9.28975010e+00 -6.21777010e+00
-3.29684973e+00 9.71458316e-01 -4.82884884e-01]]]
[[[-6.94554567e-01 -2.86260390e+00 4.95819032e-01 1.20753717e+00
-1.25322104e+00 -6.80785751e+00 2.99087048e+00]
[ 3.90842795e+00 7.05437422e-01 -4.63627338e+00 -4.29594231e+00
-1.81470032e+01 -1.05162754e+01 6.16569090e+00]
[ 6.54404926e+00 5.60676336e+00 1.99969888e+00 5.13390446e+00
7.84214973e+00 3.37323737e+00 1.45862722e+00]]
[[-7.92379093e+00 2.50463319e+00 -1.91177332e+00 -8.87752652e-01
-5.79833651e+00 -1.67904103e+00 3.38465023e+00]
[-8.39144325e+00 -1.73111618e+00 5.97456360e+00 9.83745384e+00
-5.32361083e-02 2.98696136e+00 1.26036091e+01]
[ 2.02040601e+00 4.69611931e+00 -4.99688387e-01 4.89162326e-01
1.03302085e+00 3.89524555e+00 -5.15486717e+00]]
[[-5.03087807e+00 3.63728905e+00 -6.27499914e+00 3.92535043e+00
-8.29491425e+00 -3.72752285e+00 4.68720484e+00]
[-3.24310589e+00 1.81170666e+00 8.93694115e+00 -1.94767642e+00
-1.50952816e-01 -2.01020670e+00 -5.51123798e-01]
[ 3.48294759e+00 -1.77337193e+00 3.87590885e+00 1.19602938e+01
-4.76133204e+00 2.67638445e+00 3.89841247e+00]]]
[[[-1.76921928e+00 6.18150949e-01 6.60405779e+00 -6.44002914e-01
1.44770801e+00 -8.32973671e+00 -4.72600639e-01]
[-6.50977612e-01 9.68531704e+00 3.82174778e+00 3.34875703e-01
-6.89578056e+00 -1.78329391e+01 4.56927013e+00]
[-2.56227374e+00 -4.29394245e-01 1.10443945e+01 -3.15400749e-01
-2.52940202e+00 -1.08214836e+01 5.09808683e+00]]
[[-3.51347065e+00 4.61434889e+00 3.75883579e-01 -1.06841507e+01
8.23712707e-01 -8.79144001e+00 3.37135553e+00]
[-2.37375808e+00 -3.54742527e-01 -8.29982948e+00 6.43654823e-01
-7.63626051e+00 5.17542171e+00 5.14077711e+00]
[-5.92120600e+00 -3.50078678e+00 1.35013962e+00 7.80341053e+00
2.57134748e+00 2.85691762e+00 3.00830007e-01]]
[[ 4.11679125e+00 7.13630915e+00 -1.11762981e+01 -3.86596352e-01
1.14805293e+00 4.28023672e+00 -3.28675985e+00]
[ 2.40551782e+00 -3.64890790e+00 -7.18146384e-01 8.70404530e+00
8.48745704e-01 -3.31725955e+00 2.97310209e+00]
[ 8.92424011e+00 1.59941483e+00 1.97167993e+00 -4.81712008e+00
1.98111022e+00 -4.30259705e-02 -5.70650291e+00]]]
[[[-5.26061058e+00 -2.64465809e-01 7.38119555e+00 -6.47834897e-01
9.43034530e-01 -7.06357300e-01 2.90322691e-01]
[ 1.34522903e+00 -2.67100382e+00 -6.01163447e-01 6.84935522e+00
-3.23483181e+00 -5.55480433e+00 1.58058763e+00]
[-2.66929221e+00 4.57094002e+00 5.80665588e-01 -6.27347374e+00
-4.49393511e-01 -3.80524230e+00 1.71697235e+00]]
[[-9.49717402e-01 -5.85499668e+00 -1.25428314e+01 -5.54953814e-01
-7.57058573e+00 -2.02563477e+00 -3.81893009e-01]
[-2.01847148e+00 8.88163471e+00 -5.29403257e+00 -1.05693684e+01
-1.22277555e+01 4.54300356e+00 9.06382751e+00]
[ 3.78357387e+00 -8.32775295e-01 -4.11650848e+00 3.50234461e+00
1.00062275e+00 -3.92796516e+00 -1.68430161e+00]]
[[-1.69070458e+00 1.34377897e+00 1.07700872e+00 7.19285297e+00
-3.94669366e+00 -1.15262532e+00 7.10880518e+00]
[-4.27843046e+00 2.41499138e+00 3.43025732e+00 1.72303867e+00
-3.02366209e+00 -5.26358700e+00 6.42327118e+00]
[-3.34655714e+00 2.95056057e+00 -4.64314318e+00 -1.02769148e+00
1.17372370e+00 -7.52180874e-01 -1.80870914e+00]]]
[[[ 2.17190921e-01 1.26423693e+00 -6.70858622e+00 -5.21344090e+00
-1.13337684e+00 6.58866167e-01 1.24839497e+00]
[ 2.75505280e+00 6.64785290e+00 1.03130853e+00 1.17754698e+01
3.63090253e+00 1.16689672e+01 1.55313575e+00]
[-3.12292647e+00 1.11061788e+00 6.33206034e+00 1.15392590e+00
1.00119600e+01 -1.23207533e+00 -7.61037111e-01]]
[[-5.02922392e+00 8.43987179e+00 -4.12006330e+00 -3.73620462e+00
1.30299914e+00 -1.80039597e+01 -5.03068399e+00]
[ 2.23954391e+00 -1.35837090e+00 3.52108151e-01 -1.52872343e+01
4.51470470e+00 3.68047190e+00 -5.81982946e+00]
[ 5.47188282e+00 -9.64040279e-01 -1.20577240e+01 -8.50524008e-01
-4.21620321e+00 1.05510616e+00 -6.32462692e+00]]
[[ 8.54446983e+00 1.70821512e+00 1.08931363e+00 -3.88250232e+00
1.69682932e+00 6.86313438e+00 -2.15332222e+00]
[ 3.65224528e+00 1.24455082e+00 6.66853714e+00 2.25325561e+00
1.17135878e+01 -9.04451656e+00 -6.11428642e+00]
[-8.52467251e+00 -2.62585473e+00 -2.46674442e+00 4.28841448e+00
-9.25152779e+00 -7.27791667e-01 6.20545006e+00]]]
[[[-3.08134937e+00 -3.94297051e+00 -7.54886150e+00 -5.62541676e+00
-5.80987310e+00 1.17513809e+01 9.56688881e-01]
[-3.38602328e+00 -9.03711510e+00 9.15745914e-01 -1.32734814e+01
6.13459110e+00 -1.38149261e-01 2.80070215e-01]
[ 5.22890425e+00 -5.45523453e+00 -3.76011825e+00 -3.28277516e+00
-5.29010534e+00 -1.37711430e+01 6.52301693e+00]]
[[ 3.41756678e+00 -3.60858846e+00 1.87968385e+00 -1.43287706e+00
3.11922455e+00 4.68200564e-01 -4.68261862e+00]
[-4.86278152e+00 1.39352093e+01 -9.62021637e+00 -3.80825305e+00
1.16111290e+00 -1.26444101e-01 -1.20833921e+01]
[-8.72884083e+00 -7.46688271e+00 4.59407854e+00 4.81415176e+00
3.64884233e+00 4.43356609e+00 8.83947849e-01]]
[[-2.03597188e-01 -3.30658841e+00 6.92978382e+00 1.50298548e+00
-4.08837795e-01 -4.52962399e+00 2.84746933e+00]
[ 4.93298149e+00 -6.48695183e+00 1.23016768e+01 -6.44469023e-01
9.45154965e-01 -2.60066867e+00 -6.80481434e+00]
[ 3.81087041e+00 -3.37107420e-01 7.23547935e-01 -4.93614197e+00
4.52595472e+00 -3.79317164e-01 -7.56762147e-01]]]]
原文链接:https://blog.csdn.net/mao_xiao_feng/article/details/78004522#commentBox
感谢作者!
后有更细化的理解会继续补充~