TensorFlow 用 tf.nn.conv2d 实现卷积操作

tf.nn.conv2d是TensorFlow里面实现卷积的函数,参考文档对它的介绍并不是很详细,实际上这是搭建卷积神经网络比较核心的一个方法,非常重要

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)

除去name参数用以指定该操作的name,与方法有关的一共五个参数

第一个参数input:指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],注意这是一个4维的Tensor,要求类型为float32和float64其中之一

第二个参数filter:相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维

第三个参数strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4

第四个参数padding:string类型的量,只能是"SAME","VALID"其中之一,这个值决定了不同的卷积方式(后面会介绍)

第五个参数:use_cudnn_on_gpu:bool类型,是否使用cudnn加速,默认为true

结果返回一个Tensor,这个输出,就是我们常说的feature map


那么TensorFlow的卷积具体是怎样实现的呢,用一些例子去解释它:

1.考虑一种最简单的情况,现在有一张3×3单通道的图像(对应的shape:[1,3,3,1]),用一个1×1的卷积核(对应的shape:[1,1,1,1])去做卷积,最后会得到一张3×3的feature map

2.增加图片的通道数,使用一张3×3五通道的图像(对应的shape:[1,3,3,5]),用一个1×1的卷积核(对应的shape:[1,1,1,1])去做卷积,仍然是一张3×3的feature map,这就相当于每一个像素点,卷积核都与该像素点的每一个通道做点积

  1. input = tf.Variable(tf.random_normal([1,3,3,5]))  
  2. filter = tf.Variable(tf.random_normal([1,1,5,1]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1111], padding='VALID')  
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')
3.把卷积核扩大,现在用3×3的卷积核做卷积,最后的输出是一个值,相当于情况2的feature map所有像素点的值求和

  1. input = tf.Variable(tf.random_normal([1,3,3,5]))  
  2. filter = tf.Variable(tf.random_normal([3,3,5,1]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1111], padding='VALID')  
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')
4.使用更大的图片将 情况2的图片扩大到5×5,仍然是3×3的卷积核,令步长为1,输出3×3的feature map

  1. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  2. filter = tf.Variable(tf.random_normal([3,3,5,1]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1111], padding='VALID')  
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')

注意我们可以把这种情况看成情况2和情况3的中间状态,卷积核以步长1滑动遍历全图,以下x表示的位置,表示卷积核停留的位置,每停留一个,输出feature map的一个像素
.....
.xxx.
.xxx.
.xxx.
.....

5.上面我们一直令参数padding的值为‘VALID’,当其为‘SAME’时,表示卷积核可以停留在图像边缘,如下,输出5×5的feature map

  1. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  2. filter = tf.Variable(tf.random_normal([3,3,5,1]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1111], padding='SAME')  
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
6.如果卷积核有多个

  1. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  2. filter = tf.Variable(tf.random_normal([3,3,5,7]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1111], padding='SAME')  
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')

此时输出7张5×5的feature map

7.步长不为1的情况,文档里说了对于图片,因为只有两维,通常strides取[1,stride,stride,1]

  1. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  2. filter = tf.Variable(tf.random_normal([3,3,5,7]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1221], padding='SAME')  
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')
此时,输出7张3×3的feature map
x.x.x
.....
x.x.x
.....
x.x.x
8.如果batch值不为1,同时输入10张图
  1. input = tf.Variable(tf.random_normal([10,5,5,5]))  
  2. filter = tf.Variable(tf.random_normal([3,3,5,7]))  
  3.   
  4. op = tf.nn.conv2d(input, filter, strides=[1221], padding='SAME')  
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')
每张图,都有7张3×3的feature map,输出的shape就是[10,3,3,7]

最后,把程序总结一下:

  1. import tensorflow as tf  
  2. #case 2  
  3. input = tf.Variable(tf.random_normal([1,3,3,5]))  
  4. filter = tf.Variable(tf.random_normal([1,1,5,1]))  
  5.   
  6. op2 = tf.nn.conv2d(input, filter, strides=[1111], padding='VALID')  
  7. #case 3  
  8. input = tf.Variable(tf.random_normal([1,3,3,5]))  
  9. filter = tf.Variable(tf.random_normal([3,3,5,1]))  
  10.   
  11. op3 = tf.nn.conv2d(input, filter, strides=[1111], padding='VALID')  
  12. #case 4  
  13. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  14. filter = tf.Variable(tf.random_normal([3,3,5,1]))  
  15.   
  16. op4 = tf.nn.conv2d(input, filter, strides=[1111], padding='VALID')  
  17. #case 5  
  18. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  19. filter = tf.Variable(tf.random_normal([3,3,5,1]))  
  20.   
  21. op5 = tf.nn.conv2d(input, filter, strides=[1111], padding='SAME')  
  22. #case 6  
  23. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  24. filter = tf.Variable(tf.random_normal([3,3,5,7]))  
  25.   
  26. op6 = tf.nn.conv2d(input, filter, strides=[1111], padding='SAME')  
  27. #case 7  
  28. input = tf.Variable(tf.random_normal([1,5,5,5]))  
  29. filter = tf.Variable(tf.random_normal([3,3,5,7]))  
  30.   
  31. op7 = tf.nn.conv2d(input, filter, strides=[1221], padding='SAME')  
  32. #case 8  
  33. input = tf.Variable(tf.random_normal([10,5,5,5]))  
  34. filter = tf.Variable(tf.random_normal([3,3,5,7]))  
  35.   
  36. op8 = tf.nn.conv2d(input, filter, strides=[1221], padding='SAME')  
  37.   
  38. init = tf.global_variables_initializer()
  39. with tf.Session() as sess:  
  40.     sess.run(init)  
  41.     print("case 2:", sess.run(op2))  
  42.     print("case 3:", sess.run(op3))  
  43.     print("case 4:", sess.run(op4))  
  44.     print("case 5:", sess.run(op5))  
  45.     print("case 6:", sess.run(op6))  
  46.     print("case 7:", sess.run(op7))    
  47.     print("case 8:", sess.run(op8))  
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.initialize_all_variables()
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))
因为是随机初始化,我的结果是这样的:
2017-06-14 14:46:53.971064: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-06-14 14:46:53.972064: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-14 14:46:53.973064: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-14 14:46:53.974064: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-14 14:46:53.974064: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-14 14:46:53.975064: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
case 2 [[[[-0.52606332]
   [-2.36655617]
   [-0.48506826]]

  [[ 0.7017895 ]
   [-0.05662251]
   [ 0.63115954]]

  [[ 0.75351387]
   [-1.81628561]
   [ 0.69173193]]]]
case 3 [[[[ 5.08282661]]]]
case 4 [[[[ -5.70981216]
   [  3.53728867]
   [ -7.52579594]]

  [[ 14.19870186]
   [  3.36947775]
   [-10.96851921]]

  [[ -1.99987721]
   [ -6.66679525]
   [  7.87069702]]]]
case 5 [[[[  1.97611344]
   [ -3.00274706]
   [  3.70079923]
   [  4.49441862]
   [ -4.03835535]]

  [[  2.63976121]
   [  4.15405846]
   [ -5.04740715]
   [ -6.53321648]
   [  1.42604685]]

  [[ -1.00519633]
   [ -2.40587616]
   [  1.35102236]
   [ -3.97349882]
   [  0.33154559]]

  [[  5.51335049]
   [  6.49697018]
   [ -1.49853706]
   [-13.55869484]
   [  0.12515879]]

  [[  3.05506277]
   [ -3.58232832]
   [  0.92800498]
   [ -3.52981997]
   [ -1.77350163]]]]
case 6 [[[[ -9.58486080e+00   6.96156359e+00   1.09597178e+01   7.39328027e-01
     -3.75539064e-03  -6.91973543e+00  -3.96212459e-01]
   [  8.35196018e+00   3.83365846e+00   3.41040730e+00   2.62144852e+00
      1.43929398e+00   2.24332619e+00  -5.94641685e-01]
   [  6.19311333e+00   4.75112677e+00   8.30595374e-01  -1.51628602e+00
     -2.86926419e-01  -1.39958525e+00   1.85870051e+00]
   [ -6.22723150e+00   1.95062137e+00   1.02717457e+01   2.76073742e+00
     -1.25369473e+01   1.71717060e+00   4.38334799e+00]
   [  6.32609844e+00   4.67956161e+00  -4.51520532e-01  -1.23636160e+01
     -5.47108364e+00   7.57634783e+00   3.89445138e+00]]

  [[  2.20946407e+00   2.54539537e+00  -4.68491268e+00  -9.54503822e+00
     -1.61310291e+00   1.56076479e+00  -4.53735256e+00]
   [  7.45909786e+00   6.30874455e-01  -4.42721748e+00   7.53257227e+00
      4.74439096e+00   5.71603584e+00  -7.23976183e+00]
   [ -1.70475352e+00  -3.57074857e+00  -6.80530548e+00  -7.93163300e+00
      9.13454151e+00  -1.46301813e+01   2.93460202e+00]
   [  1.22022915e+01   4.27420092e+00  -5.91523266e+00  -3.24124718e+00
      1.07541504e+01  -7.49035883e+00  -4.72378635e+00]
   [  2.54469848e+00   1.11528218e+00   4.44296312e+00   1.68044262e+01
      2.45967579e+00   6.48420715e+00  -7.76900244e+00]]

  [[  1.25333869e+00  -5.40638745e-01   1.12972319e+00   3.49431181e+00
      5.23187399e-01  -6.65663433e+00  -6.05062485e+00]
   [ -7.67155695e+00  -2.63271666e+00  -9.34344482e+00   3.22835636e+00
      7.81190252e+00  -5.40972240e-02  -7.59731913e+00]
   [ -1.84532869e+00  -2.30355215e+00  -1.51808828e-01   1.86622715e+00
     -6.26655340e+00  -7.62870979e+00   4.38632870e+00]
   [  5.34085417e+00   3.12126875e+00  -1.01014404e+01  -9.86198068e-01
      3.76195860e+00   1.69395602e+00  -6.39946103e-01]
   [ -1.16484270e+01  -7.43383598e+00  -1.20559931e+00   4.26024646e-01
      3.55676293e+00  -4.17652988e+00  -2.41757441e+00]]

  [[ -1.27108402e+01  -1.24290597e+00   6.47658730e+00   5.67131662e+00
     -8.63354492e+00   1.24997973e+00   2.21966171e+00]
   [  8.82716846e+00   4.88412237e+00  -2.79670215e+00  -1.49250259e+01
     -3.16158652e+00   1.45118647e+01  -3.69530869e+00]
   [ -5.35914326e+00  -8.17778015e+00   2.39483356e+00   9.30813885e+00
      3.36260557e+00  -8.68805218e+00  -8.20777988e+00]
   [ -2.26098847e+00  -1.01136141e+01  -6.72648144e+00   1.21624641e+01
     -2.60397506e+00  -4.03512049e+00   1.16957498e+00]
   [  4.30962324e+00  -1.07495012e+01  -6.16985226e+00  -4.35356808e+00
     -3.45031524e+00  -2.41650200e+00   6.33158493e+00]]

  [[ -2.81642199e+00  -2.05017996e+00   1.97988451e-01  -6.29269648e+00
     -3.03986573e+00  -1.44087160e+00  -4.21717739e+00]
   [  3.81572175e+00   8.75969648e-01   3.15224743e+00   7.08601522e+00
      2.07415032e+00   1.25495634e+01   2.32729316e+00]
   [ -2.41818595e+00   2.09442449e+00  -4.51933622e+00  -4.73766947e+00
      6.71630025e-01  -5.64641094e+00   6.08739567e+00]
   [ -2.13604975e+00  -3.23328424e+00   5.02121210e+00   3.26534200e+00
     -1.54366744e+00   9.83236408e+00   1.10535278e+01]
   [  1.76021576e-01  -3.59739876e+00   5.37324905e+00   2.06637764e+00
      2.01053119e+00   5.99147224e+00   4.48010540e+00]]]]
case 7 [[[[ -1.64238048  -3.50480175   6.73341179  -5.38003159  -3.16319394
      2.97936392   1.5007838 ]
   [ -8.43517113  -1.02131617 -11.20739841  -0.96980453  -1.50716877
      2.20918846   3.77424669]
   [  1.82377911   9.15437889  -3.06952691   5.12972832  -0.73750699
     -3.03701162  -0.53048229]]

  [[  0.58637309   1.95241702  -5.71823978  -0.61747551   3.30249333
      1.59820771  -3.41877246]
   [-11.4863205    1.45281851 -28.18989372   5.10940266  -4.0479002
     -1.5557996    2.66930342]
   [ -2.43096924   6.48180008 -14.12609291   1.23995638  -5.15160751
     -3.05162811  -2.52746725]]

  [[  5.0053196    2.62140393   1.25775588  11.76145935   2.91171455
      1.96272492   0.79130137]
   [ -2.21061921  -0.90402603   7.48881674   1.37530994   3.11179781
      1.37841344   6.62264538]
   [  8.54335499   3.48340797  -6.59915733  -6.2988081    0.19243068
      4.73711348  -0.10501611]]]]
case 8 [[[[  6.76725578e+00  -6.08127356e+00   3.37064934e+00   2.49894333e+00
      2.17137888e-01  -6.04165792e+00  -1.30347860e+00]
   [  1.62116957e+00  -6.31789589e+00  -3.93674421e+00   1.00280209e+01
      3.79735160e+00   8.09819031e+00  -3.12667084e+00]
   [  5.21801949e+00   4.60690880e+00  -1.31355822e+00   7.90483713e+00
     -6.93842793e+00  -4.44858193e-01   8.95660210e+00]]

  [[ -1.09319181e+01   8.81527007e-01   8.04250813e+00   3.03630638e+00
      1.70198277e-01  -5.66809607e+00   4.79498720e+00]
   [  1.84253085e+00   5.93207550e+00  -1.38030410e+00  -1.94207897e+01
     -8.39466333e-01  -5.25909042e+00   1.17442608e-01]
   [ -1.32660933e+01  -3.71425080e+00   1.02344131e+01  -6.69431496e+00
      1.26127586e+01  -1.00799084e+00   5.52266788e+00]]

  [[ -1.62577558e+00   5.61079323e-01  -7.65262747e+00   9.65942001e+00
      1.45272803e+00   5.65869427e+00  -1.34156621e+00]
   [  7.20697403e+00   8.22261238e+00  -1.70085764e+00  -3.25494099e+00
     -4.67046547e+00  -2.60497117e+00   3.36051226e-01]
   [ -7.61353111e+00   4.17760134e+00   6.07235813e+00  -7.10235476e-01
     -6.48647785e-01  -6.48485661e-01  -1.70042515e-01]]]


 [[[  2.76987624e+00   1.33250093e+00  -5.38954115e+00  -5.04619741e+00
      5.93769968e-01   2.76492023e+00  -9.49700534e-01]
   [  2.52268028e+00   1.02666636e+01   8.79963219e-01  -8.22511435e-01
     -3.01407146e+00  -8.11141872e+00   1.67827976e+00]
   [ -1.72072780e+00  -4.90595818e+00   6.18199921e+00   5.38866520e+00
      5.86914062e+00   2.37386847e+00  -2.22012520e+00]]

  [[  2.52944183e+00   5.67809582e+00   3.94278574e+00  -3.49029970e+00
     -3.32722402e+00  -9.97830200e+00  -5.94163179e-01]
   [ -1.49632633e+00  -9.76519585e+00   1.34264746e+01  -4.55108595e+00
     -6.06964171e-01   1.87312603e+00  -8.02031422e+00]
   [ -8.71008396e+00   8.69349384e+00  -1.20362511e+01  -3.44090843e+00
      5.66857004e+00  -5.52342081e+00  -8.58711004e-01]]

  [[  1.63751709e+00  -2.05122948e-01  -5.85591316e-01   1.02102494e+00
      3.45612526e+00   4.15163428e-01   5.13664818e+00]
   [  3.43423510e+00   3.93246937e+00   7.85895395e+00   5.60044193e+00
      2.51593828e+00  -1.79468393e-02  -4.66426468e+00]
   [ -4.64441109e+00  -6.82685614e+00   2.68426228e+00  -8.48734379e-01
      1.36991203e+00  -5.65177083e-01  -1.01465964e+00]]]


 [[[ -2.20064592e+00  -1.12638116e-01  -1.80009699e+00  -6.07085371e+00
     -2.76912689e+00   8.31840515e-01  -3.57891202e+00]
   [ -2.65003014e+00   2.66735625e+00  -1.47713840e-01  -4.28291082e+00
      1.23284512e+01   2.14731789e+00  -7.48025799e+00]
   [  3.37710810e+00   7.09675074e+00  -1.11187639e+01   1.42293906e+00
     -1.93258631e+00   2.99749851e+00   1.06465816e+00]]

  [[  2.61144972e+00   3.34804893e+00  -2.92052293e+00  -1.82443261e-01
     -3.05148721e+00   3.31360722e+00   5.80551338e+00]
   [ -7.72317934e+00   5.43463755e+00   6.45791101e+00  -2.86883354e+00
      2.87652802e+00  -2.80661130e+00   8.74918270e+00]
   [ -4.11673403e+00   1.16041291e+00  -3.41985035e+00   1.15512228e+00
      4.82202053e+00   1.67364478e-01  -1.18930244e+01]]

  [[  3.19718194e+00   1.19332027e+00  -3.84451056e+00  -4.29075241e+00
     -2.76515675e+00   1.18278360e+00  -2.59048033e+00]
   [ -3.35932016e+00  -6.51238561e-01   1.38441694e+00   6.85920477e+00
      9.64034557e-01  -4.13727188e+00   4.36987495e+00]
   [  2.48973751e+00   1.65481651e+00   2.37398505e-01  -5.59265757e+00
      1.79883158e+00  -4.75578308e-01   1.16481054e+00]]]


 [[[  5.92877340e+00  -1.33712292e-01   1.66906190e+00   1.13668931e+00
      3.45588470e+00  -2.53551960e-01   8.37233186e-01]
   [ -1.32443476e+00   1.12452710e+00  -2.39949298e+00   6.44278622e+00
      4.53194189e+00  -2.81797767e-01   1.38358669e+01]
   [  2.25234866e+00  -7.41147232e+00   9.26180840e-01   6.48709345e+00
     -4.23942900e+00   4.53352928e-01   3.53275800e+00]]

  [[ -1.42710352e+00  -7.06395268e-01  -2.15401292e+00  -3.60949755e+00
     -6.28622246e+00  -2.17494392e+00  -3.49328899e+00]
   [  2.16946745e+00  -2.32251978e+00  -3.05405498e+00  -8.45963287e+00
      6.94201231e+00   2.24972963e+00   5.36465645e+00]
   [ -3.27833247e+00   5.65112543e+00  -1.05283842e+01   4.82156515e+00
      5.94692612e+00  -3.39724016e+00   5.43366957e+00]]

  [[  2.38006926e+00  -5.12373781e+00  -6.74990237e-01  -1.73918009e+00
     -4.66130114e+00  -2.96519470e+00   2.29018831e+00]
   [ -3.33497977e+00   9.15849686e+00  -7.69711924e+00   7.92530632e+00
     -2.11515856e+00   7.06658173e+00  -2.29860687e+00]
   [ -9.80789781e-01  -3.93122482e+00   5.90003061e+00   1.20781004e+00
      6.46791840e+00   5.74504805e+00   2.73266888e+00]]]


 [[[ -9.18041229e-01  -2.28614211e+00   2.59362102e+00   4.76201439e+00
      4.58528471e+00  -3.87458825e+00   1.12633443e+00]
   [ -2.50868797e+00  -4.43942642e+00   7.05060422e-01  -3.26971722e+00
     -1.11222715e+01   4.57960367e+00  -4.93877745e+00]
   [  2.24102807e+00  -1.26506495e+00  -1.79960817e-01  -3.23120618e+00
     -6.27641797e-01   5.32812119e-01  -1.51265597e+00]]

  [[ -2.88840604e+00  -5.68820667e+00  -1.34309921e+01  -1.02166023e+01
     -1.76871085e+00   1.13389337e+00   8.21288013e+00]
   [  2.30296612e+00  -1.16673002e+01   3.43024683e+00  -7.36744881e+00
     -4.07608700e+00   1.32408726e+00  -1.55097933e+01]
   [  5.71044970e+00   1.10758095e+01  -5.31440878e+00   2.73195982e+00
      3.40430689e+00   4.09312963e+00  -9.67467976e+00]]

  [[  4.54526472e+00   3.22451544e+00  -9.37997437e+00  -6.30340338e-01
     -3.57583332e+00   6.34372854e+00  -2.22558761e+00]
   [ -1.35814047e+00   7.66908216e+00  -2.85895061e+00   5.72339058e+00
     -4.84876633e-02  -7.07008600e-01  -4.63479614e+00]
   [ -1.91680515e+00  -4.67467117e+00   1.71807313e+00   2.63151050e+00
      3.14775705e-02  -6.05364275e+00   1.15297008e+00]]]


 [[[ -2.20237195e-01  -6.81537867e+00   6.31236362e+00   2.38446116e+00
      2.36694050e+00  -3.11863279e+00  -7.08109999e+00]
   [  1.78735375e+00  -3.60026979e+00   2.22110605e+00  -6.34741163e+00
     -3.58712745e+00   9.15894270e-01  -6.33537114e-01]
   [  3.27181077e+00  -2.26839733e+00   1.23219049e+00   3.31538796e-01
     -6.53275490e+00   2.10403562e-01   6.01154518e+00]]

  [[ -6.57465935e-01   4.22339344e+00  -7.64890146e+00  -5.94516563e+00
      1.74173903e+00   5.62580585e+00  -6.70441985e-02]
   [  4.72588348e+00   1.77713051e+01   9.54188228e-01   4.63687134e+00
     -1.37816095e+00   1.23621273e+00   1.59102237e+00]
   [ -6.13924408e+00  -4.02708340e+00   4.48025560e+00   1.93128490e+00
      4.51082230e+00   1.18464172e+00   1.71827459e+00]]

  [[  7.07607841e+00   4.62650776e+00  -2.91368818e+00  -9.48680496e+00
     -7.02948856e+00  -4.41453028e+00  -1.46546698e+00]
   [ -6.82952738e+00  -1.48193941e+01   4.44268131e+00   4.59435225e+00
      1.76272058e+00  -3.91105723e+00   2.56639242e+00]
   [  6.36540270e+00   6.89653158e-01  -6.69941235e+00  -1.63398385e+00
     -5.17021704e+00   2.54500103e+00  -1.23757792e+00]]]


 [[[ -2.99489927e+00  -6.52301884e+00   3.87044263e+00   1.79950929e+00
      5.11808252e+00   6.16729319e-01  -2.83518147e+00]
   [  3.33332109e+00   1.01459351e+01  -7.93019819e+00  -8.48755646e+00
     -1.13471041e+01  -1.20185673e+00   9.12296867e+00]
   [ -3.44571233e+00   2.52567244e+00   9.86605763e-01  -3.83005333e+00
      7.48547077e+00   3.60538960e-02   1.98543215e+00]]

  [[  4.61365223e+00   3.82221889e+00  -3.03265333e+00  -6.17691803e+00
      6.04736280e+00  -9.24414754e-01  -1.97937417e+00]
   [ -5.12257159e-01  -2.04904485e+00  -5.46236753e+00   4.01417542e+00
     -3.49250031e+00  -2.17701077e+00   5.53512764e+00]
   [  1.39157414e+00  -8.38040352e-01   4.75963068e+00  -8.02359867e+00
      4.98993993e-01  -9.15192246e-01   3.09440994e+00]]

  [[ -2.74529099e+00   3.94999504e+00  -7.85709381e-01  -5.85657501e+00
     -5.83431387e+00  -1.87905717e+00   1.20637417e+00]
   [ -1.52225952e+01  -4.34417582e+00   4.51112604e+00   4.99496126e+00
      4.88079023e+00   5.22809601e+00   3.46670437e+00]
   [  6.66846657e+00  -3.00085235e+00   6.84555101e+00   1.63907826e-01
     -3.87434053e+00   5.89314651e+00  -1.81252563e+00]]]


 [[[ -1.88773870e+00   1.09447422e+01  -6.39017439e+00  -5.99226713e+00
     -2.52865696e+00  -2.38019085e+00   8.98316002e+00]
   [ -4.13695574e+00  -3.07833099e+00   5.37104130e+00  -4.90489185e-01
      3.72303557e+00   2.41083956e+00  -5.03135061e+00]
   [ -1.88399386e+00  -2.20304918e+00   3.68014216e+00   3.89192200e+00
      1.88268805e+00  -2.45379925e+00  -2.79539824e-01]]

  [[ -5.94709063e+00  -2.16639400e+00  -2.07845068e+00   4.68858099e+00
     -1.12794137e+00   6.80767536e+00   2.89004970e+00]
   [  1.39966831e+01   8.74523258e+00  -1.04775705e+01   3.26368380e+00
      2.41618574e-01   2.72138214e+00   4.05281782e+00]
   [ -1.73461962e+00  -4.09651899e+00   4.56689310e+00   3.74642324e+00
     -4.49646473e+00   9.52833414e-01   3.07033420e-01]]

  [[  2.38036895e+00  -2.65577936e+00  -3.07820177e+00   2.73764539e+00
     -4.55635595e+00   5.30430365e+00  -5.63809013e+00]
   [ -1.23837125e+00  -2.17566991e+00   1.31416774e+00  -1.80991638e+00
      7.77094364e-01  -3.97821832e+00   4.51011944e+00]
   [  7.12934256e-01   4.05190706e+00   3.32093716e+00   1.34852672e+00
     -1.15239739e-01   5.34319162e+00  -1.65904045e-01]]]


 [[[  6.50790262e+00   8.61094952e+00  -3.97463441e+00  -4.43200970e+00
     -2.84540534e+00  -1.86651862e+00   6.60474586e+00]
   [ -1.28293276e+00  -1.39623613e+01   7.86061382e+00   1.78254414e+00
      9.87353802e+00  -2.76499081e+00   4.96863270e+00]
   [ -3.33652139e+00   1.26868427e+00  -6.66439247e+00   5.04328609e-01
      2.43588090e+00   6.00998354e+00   2.47339034e+00]]

  [[  3.01447916e+00   2.51831555e+00   1.07128983e+01  -4.79864502e+00
      5.37306690e+00  -5.41412830e+00   1.46103907e+00]
   [ -7.05279732e+00  -7.72752571e+00   4.10202408e+00  -4.55964613e+00
     -9.13005412e-01  -3.60392094e-01  -5.03269529e+00]
   [ -1.07030020e+01  -9.36883259e+00   1.70187318e+00  -2.02023315e+00
     -5.67791653e+00   5.37206125e+00  -5.52780533e+00]]

  [[ -1.84399533e+00  -4.36706305e-01  -4.84476471e+00  -4.50792599e+00
      6.41343689e+00  -1.60007250e+00   3.50643873e+00]
   [ -2.50450826e+00   9.68474579e+00  -1.51821899e+00   1.25261002e+01
      2.52661514e+00   2.05225492e+00   9.17361736e-01]
   [  2.42533541e+00   9.02654171e+00  -1.22157049e+01  -4.46680427e-01
     -8.36634755e-01   3.82433605e+00  -2.43912315e+00]]]


 [[[ -3.42514348e+00  -6.44803333e+00   3.41714406e+00   6.85565281e+00
      6.78241968e+00   3.85701418e+00   4.57887173e+00]
   [  4.58459711e+00   7.87325799e-02  -6.13661194e+00   2.80664301e+00
     -1.20934761e+00   1.65178835e+00   1.06638730e+00]
   [ -9.97225046e-02   2.96412373e+00  -2.72047305e+00   6.45350838e+00
      1.58289790e-01   1.40424895e+00   1.55619192e+00]]

  [[ -3.19208527e+00   4.69504929e+00  -6.60620260e+00   7.13848448e+00
     -3.59926343e+00   2.65819025e+00   1.45583944e+01]
   [  3.16265655e+00  -3.15349126e+00   3.46172810e-01  -1.77412227e-01
      1.09005136e+01   3.94094539e+00   1.28033161e+00]
   [ -3.65051031e+00   1.84579825e+00   2.79313636e+00  -4.27654886e+00
     -1.73083258e+00  -3.60854626e-01  -3.09923792e+00]]

  [[  4.62664270e+00  -4.74056816e+00  -5.72024536e+00  -5.35546541e+00
     -7.94474602e+00  -3.75466156e+00   5.67611361e+00]
   [ -1.68416710e+01  -8.02755070e+00   9.71607971e+00   2.98279428e+00
      5.30612469e+00  -6.35753810e-01   5.61828756e+00]
   [  4.38614941e+00   3.11239791e+00  -6.71634388e+00  -4.19947815e+00
     -5.62045860e+00   9.77870083e+00  -1.09575939e+00]]]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值