关于padding的一些要点
padding主要是防止丢掉图像边缘位置的许多信息。如果不用padding,会导致1、很明显,图像中间位置的数据会参与更多的运算,而边缘位置的数据参与运算的次数比中间位置的数据少。2、每一步卷积图像都会缩小,如果网络层数很多的话,那么图像最后会很小。
所以根据自己需要可以在卷积之前进行padding。padding的意思即填充边缘,扩大边缘,也就是Same卷积。而Valid卷积则意味着不填充。
在步长stride=1的前提下,如果用Valid卷积,一个n * n的图像,用一个f * f的过滤器卷积,则可以得到一个(n-f+1)*(n-f+1)维的输出。
在步长stride=1的前提下,如果用Same卷积,则输入大小和输出大小是一样的,也就是一个n * n的图像,不管使用什么大小的过滤器卷积,输出大小都还是n * n维。
对于Valid卷积,输出的形状长和宽的计算如下:(其中W表示输入的长或宽,F表示卷积核filter大小,S表示步长stride)
⌈
W
−
F
+
1
S
⌉
\lceil {{W-F+1}\over S} \rceil
⌈SW−F+1⌉
对于Same卷积,输出的形状长或宽只和输入的长和宽以及步长有关,计算如下:
⌈
W
S
⌉
\lceil {{W}\over S} \rceil
⌈SW⌉
其中
⌈
⌉
\lceil \rceil
⌈⌉为向上取整符号。
另外,卷积conv和池化pool中的Valid和Same的用法是一样的。
根据输入的形状,源码nn_ops.py中的convolution函数和pool函数给出的计算输出的形状的公式如下(ceil在英文中是向上取整的意思),可以看出也就是上面给出的两个公式:
If padding == "SAME":
output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides[i])
If padding == "VALID":
output_spatial_shape[i] =
ceil((input_spatial_shape[i] -
(spatial_filter_shape[i]-1) * dilation_rate[i])
/ strides[i]).
再具体说明下如何使用Same池化(只是为了说明Same的原理而已,在卷积conv中Same是一样的):
来自网址:https://blog.youkuaiyun.com/wuzqchom/article/details/74785643 感谢!
变量x是一个2×3的矩阵,max pooling窗口为2×2,两个维度的步长strides=2 。
第一次由于窗口可以覆盖,橙色区域做max pooling,没什么问题,如下:
接下来就是SAME和VALID的区别所在:由于步长为2,当向右滑动两步之后,VALID方式发现余下的窗口不到2×2所以直接将第三列舍弃,而SAME方式并不会把多出的一列丢弃,但是只有一列了不够2×2怎么办?填充!
如上图所示,SAME会增加第四列以保证可以达到2×2,但为了不影响原始信息,一般以0来填充。这就不难理解不同的padding方式输出的形状会有所不同了。
下面代码就是上面这个例子:
import tensorflow as tf
x = tf.constant([[1., 2., 3.],
[4., 5., 6.]])
x = tf.reshape(x, [1, 2, 3, 1]) # give a shape accepted by tf.nn.max_pool
# print(x)
valid_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='VALID')
same_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='SAME')
valid_pad_1 = tf.reshape(valid_pad,[-1])
same_pad_1 = tf.reshape(same_pad,[-1])
init = tf.initialize_all_variables()
with tf.Session() as sess:
print(sess.run(x))
print("valid_pad:\n",sess.run(valid_pad))
print("same_pad:\n",sess.run(same_pad))
print("valid_pad.get_shape():\n",valid_pad.get_shape())
print("same_pad.get_shape():\n",same_pad.get_shape())
print("valid_pad_1:\n", sess.run(valid_pad_1))
print("same_pad_1:\n", sess.run(same_pad_1))
输出:
[[[[1.]
[2.]
[3.]]
[[4.]
[5.]
[6.]]]]
valid_pad:
[[[[5.]]]]
same_pad:
[[[[5.]
[6.]]]]
valid_pad.get_shape():
(1, 1, 1, 1)
same_pad.get_shape():
(1, 1, 2, 1)
valid_pad_1:
[5.]
same_pad_1:
[5. 6.]
下面是关于卷积的例子和使用:
(来自网址:https://blog.youkuaiyun.com/zuolixiangfisher/article/details/80528989 感谢!)
tf.nn.conv2d (input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)
参数:
- **input : ** 输入的要做卷积的图片,要求为一个张量,shape为 [ batch, in_height, in_weight, in_channel ],其中batch为图片的数量,in_height 为图片高度,in_weight 为图片宽度,in_channel 为图片的通道数,灰度图该值为1,彩色图为3。(也可以用其它值,但是具体含义不是很理解)
- filter: 卷积核,要求也是一个张量,shape为 [ filter_height, filter_weight, in_channel, out_channels ],其中 filter_height 为卷积核高度,filter_weight 为卷积核宽度,in_channel 是图像通道数 ,和 input 的 in_channel 要保持一致,out_channel 是卷积核数量。
- strides: 卷积时在图像每一维的步长,这是一个一维的向量,[ 1, strides, strides, 1],第一位和最后一位固定必须是1
- padding: string类型,值为“SAME” 和 “VALID”,表示的是卷积的形式,是否考虑边界。"SAME"是考虑边界,不足的时候用0去填充周围,"VALID"则不考虑
- use_cudnn_on_gpu: bool类型,是否使用cudnn加速,默认为true
import tensorflow as tf
# case 1
# 输入是1张 3*3 大小的图片,图像通道数是5,卷积核是 1*1 大小,数量是1
# 步长是[1,1,1,1]最后得到一个 3*3 的feature map
# 1张图最后输出就是一个 shape为[1,3,3,1] 的张量
input = tf.Variable(tf.random_normal([1, 3, 3, 5]))
filter = tf.Variable(tf.random_normal([1, 1, 5, 1]))
op1 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
# case 2
# 输入是1张 3*3 大小的图片,图像通道数是5,卷积核是 2*2 大小,数量是1
# 步长是[1,1,1,1]最后得到一个 3*3 的feature map
# 1张图最后输出就是一个 shape为[1,3,3,1] 的张量
input = tf.Variable(tf.random_normal([1, 3, 3, 5]))
filter = tf.Variable(tf.random_normal([2, 2, 5, 1]))
op2 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
# case 3
# 输入是1张 3*3 大小的图片,图像通道数是5,卷积核是 3*3 大小,数量是1
# 步长是[1,1,1,1]最后得到一个 1*1 的feature map (不考虑边界)
# 1张图最后输出就是一个 shape为[1,1,1,1] 的张量
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
# 输入是1张 5*5 大小的图片,图像通道数是5,卷积核是 3*3 大小,数量是1
# 步长是[1,1,1,1]最后得到一个 3*3 的feature map (不考虑边界)
# 1张图最后输出就是一个 shape为[1,3,3,1] 的张量
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
# 输入是1张 5*5 大小的图片,图像通道数是5,卷积核是 3*3 大小,数量是1
# 步长是[1,1,1,1]最后得到一个 5*5 的feature map (考虑边界)
# 1张图最后输出就是一个 shape为[1,5,5,1] 的张量
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
# 输入是1张 5*5 大小的图片,图像通道数是5,卷积核是 3*3 大小,数量是7
# 步长是[1,1,1,1]最后得到一个 5*5 的feature map (考虑边界)
# 1张图最后输出就是一个 shape为[1,5,5,7] 的张量
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
# 输入是1张 5*5 大小的图片,图像通道数是5,卷积核是 3*3 大小,数量是7
# 步长是[1,2,2,1]最后得到7个 3*3 的feature map (考虑边界)
# 1张图最后输出就是一个 shape为[1,3,3,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
# 输入是10 张 5*5 大小的图片,图像通道数是5,卷积核是 3*3 大小,数量是7
# 步长是[1,2,2,1]最后每张图得到7个 3*3 的feature map (考虑边界)
# 10张图最后输出就是一个 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]))
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('*' * 20 + ' op1 ' + '*' * 20)
print(sess.run(op1))
print('*' * 20 + ' op2 ' + '*' * 20)
print(sess.run(op2))
print('*' * 20 + ' op3 ' + '*' * 20)
print(sess.run(op3))
print('*' * 20 + ' op4 ' + '*' * 20)
print(sess.run(op4))
print('*' * 20 + ' op5 ' + '*' * 20)
print(sess.run(op5))
print('*' * 20 + ' op6 ' + '*' * 20)
print(sess.run(op6))
print('*' * 20 + ' op7 ' + '*' * 20)
print(sess.run(op7))
print('*' * 20 + ' op8 ' + '*' * 20)
print(sess.run(op8))
输出为:
******************** op1 ********************
[[[[-2.1102579 ]
[ 1.7528694 ]
[-4.330162 ]]
[[-2.980529 ]
[-4.02174 ]
[-1.3803103 ]]
[[-0.52696365]
[-0.5400877 ]
[ 4.257976 ]]]]
******************** op2 ********************
[[[[ 6.794629 ]
[ 7.0605865 ]
[-3.839518 ]]
[[ 3.705162 ]
[ 6.544575 ]
[ 2.7251601 ]]
[[-1.776925 ]
[-6.010596 ]
[ 0.20474422]]]]
******************** op3 ********************
[[[[-5.858827]]]]
******************** op4 ********************
[[[[ 5.1534324 ]
[ 0.24438173]
[ 2.6629415 ]]
[[-6.6123667 ]
[ 3.0014296 ]
[ 5.95994 ]]
[[-5.420522 ]
[-0.16013396]
[ 6.3741193 ]]]]
******************** op5 ********************
[[[[ 0.7076789 ]
[ 2.7754245 ]
[ -8.20875 ]
[ -7.670368 ]
[ 13.234421 ]]
[[-14.473554 ]
[-24.415937 ]
[ 4.2061357 ]
[ -3.0130825 ]
[ -6.42306 ]]
[[ 7.863237 ]
[-15.57128 ]
[ 11.033218 ]
[ 7.3614597 ]
[ -6.8422723 ]]
[[ 5.0591707 ]
[ -7.7274995 ]
[ -5.5328083 ]
[ -6.1364474 ]
[-10.909695 ]]
[[ 0.3346491 ]
[ 3.9912639 ]
[ -0.96540976]
[ 1.778172 ]
[ -3.2838888 ]]]]
******************** op6 ********************
[[[[ 3.3766987e+00 1.8238509e-01 -5.0712049e-01 -5.8417220e+00
-1.3495737e+00 7.2260219e-01 5.4029684e+00]
[-6.5919771e+00 3.4026594e+00 1.1648191e+01 3.7200637e+00
2.3319988e+00 -1.1140907e+00 4.3448937e-01]
[ 1.1609080e+00 -8.1715136e+00 -1.0701718e+01 -3.5535312e+00
5.2467089e+00 -4.3264627e-01 5.0995941e+00]
[-4.9373450e+00 2.8186305e+00 6.4909940e+00 1.2804997e+00
-1.5649986e-01 -1.7928773e+00 -1.4341359e+00]
[ 2.9774120e+00 -2.5351973e+00 -2.6322658e+00 -1.9835292e+00
3.9607582e+00 -1.5774579e+00 -2.4415855e+00]]
[[ 4.2983584e+00 -5.1479087e+00 -3.4114823e-01 -1.7837211e+00
-4.3760118e+00 -6.8484349e+00 -5.9178218e-02]
[-1.6580420e+00 7.6442108e+00 1.6944296e+01 5.7970457e+00
-4.1081457e+00 -9.1539736e+00 -4.7948341e+00]
[-2.9536286e-01 -1.4625232e+01 -7.5019760e+00 -3.9085441e+00
2.2455480e+00 6.0694165e+00 9.1763239e+00]
[-4.1500372e-01 6.0697980e+00 8.5761061e+00 5.4807434e+00
6.7770252e+00 1.0990472e+00 -6.6264313e-01]
[-1.1099565e+01 -9.7044163e+00 2.7593523e-01 -6.2704134e-01
-3.5072777e+00 8.7580938e+00 4.2789965e+00]]
[[ 8.6269724e-01 5.5576096e+00 9.5227271e-02 4.6656817e-01
-7.0653844e+00 -2.9691746e+00 -6.8748891e-01]
[-2.0854315e+01 3.8642945e+00 1.5439602e+01 -6.2325506e+00
-5.3711343e+00 1.3131008e+01 1.4660603e+01]
[ 1.4693165e+01 2.7910218e+00 7.8768821e+00 8.4947652e-01
1.0254288e+01 -4.8888803e+00 -5.2695742e+00]
[-2.8294441e-01 -2.3655815e+00 -1.0143698e+01 -9.2427950e+00
7.0068598e+00 -6.3560429e+00 5.5390029e+00]
[-1.4542973e+00 -3.2016857e+00 3.0236146e+00 7.8254042e+00
3.4446232e+00 4.2143569e+00 9.0647078e-01]]
[[ 1.6468962e+00 -4.6848245e+00 -6.0909958e+00 6.7973571e+00
-2.8578022e+00 2.5114522e+00 -1.5889795e+00]
[ 9.4042921e+00 -3.0222580e+00 7.6566644e+00 -7.0463271e+00
3.9854026e+00 -1.3263643e+01 2.9594634e+00]
[ 8.1233187e+00 4.2183638e+00 -7.3966086e-01 -1.5055463e+01
4.1892443e+00 -4.6484060e+00 7.5296903e-01]
[-7.2690644e+00 5.7705808e+00 1.3935292e+00 -9.8303871e+00
3.0329249e+00 1.3553764e+01 3.5225368e+00]
[-5.3503901e-02 6.1269464e+00 7.0602541e+00 -5.7827979e-02
-4.2867603e+00 1.6927242e-02 -2.9667466e+00]]
[[ 8.2041204e-01 8.0074263e+00 5.0753446e+00 1.1840314e+00
1.1343875e+00 -5.8627415e+00 -8.4282932e+00]
[ 8.7454300e+00 -3.0310152e+00 1.7002646e+00 -8.3700790e+00
-7.7701068e+00 -6.0737019e+00 9.7972288e+00]
[ 4.8193526e+00 -1.0198227e+01 -1.3411115e+00 -2.9800222e+00
-7.0696278e+00 -1.5774721e+00 -1.9846292e+00]
[ 5.8017945e+00 -5.9069500e+00 -5.2448416e-01 2.7093234e+00
-1.2863131e+00 -1.5249186e+00 3.2082253e+00]
[-5.9433370e+00 -4.3355811e-01 8.6034365e+00 -3.4143336e+00
-5.7050300e+00 -4.2822728e+00 -2.9184520e+00]]]]
******************** op7 ********************
[[[[ -7.5372252 0.869042 -2.0809057 -0.5405408 -1.8470072
7.1394873 5.438758 ]
[ -2.3003712 -3.4028695 4.6274524 -1.6452856 3.4990501
-0.9364133 -2.0937176 ]
[ -0.28855896 4.8629384 2.2287118 6.390027 6.3039274
-6.614783 -0.39455616]]
[[ 0.826122 5.051365 -2.2048364 9.305028 0.6260247
-1.879495 -2.2270882 ]
[ -1.1186478 17.342714 -10.628071 -5.104243 -0.88188994
10.782307 2.9390166 ]
[ -0.28509504 3.4745169 -3.8931267 4.9868436 -5.966717
6.878785 1.5596883 ]]
[[ 2.7953954 -2.1384845 -3.916284 -2.873501 -0.8095609
0.99812984 -2.099301 ]
[ -0.7582061 -2.57421 -0.3044435 11.94333 3.720908
-4.9527564 1.1970487 ]
[ 4.146548 -2.8289194 -4.120914 -0.9884004 -1.491147
2.9562085 3.2215147 ]]]]
******************** op8 ********************
[[[[ -8.987838 -4.029111 -7.044727 -3.615126 -1.668101
-3.9156017 -1.4720523 ]
[ -5.5716453 2.5921113 -4.730905 -2.2866921 -0.34536296
1.5864456 4.016749 ]
[ 1.378424 1.3865173 2.5837576 1.8788316 2.832894
3.8592756 3.4136848 ]]
[[ -0.50596595 3.7122116 0.41441262 -3.9372468 -2.9495358
-7.310069 -3.0173693 ]
[ 0.79144853 7.494745 3.1170692 5.0595737 7.154664
7.911112 -2.394431 ]
[ -7.949675 0.7280495 -3.7469447 1.9297526 1.5553339
7.5879593 1.9296365 ]]
[[ -1.1751139 -3.6501503 6.039238 4.6818886 -2.135901
-1.0763779 -5.8715587 ]
[ 5.0613437 0.13088787 -10.610691 5.9394503 0.9739995
2.0069845 2.4331532 ]
[ 0.60831624 -0.39788914 3.1580377 -0.16400816 -0.5498022
-3.611261 -6.0220146 ]]]
[[[ 5.5971704 3.698498 -9.070675 7.2897997 -4.94272
-13.771665 -2.3148098 ]
[ -0.8207602 -0.44880065 -2.5555444 2.0951614 -10.386882
-2.9281578 -4.4660788 ]
[ 3.3822691 -0.7254721 3.9041047 3.847748 0.2976513
-2.5028167 -1.9643843 ]]
[[ 4.3488646 5.192009 -8.295724 6.8376236 -4.036196
-4.40831 -3.4350529 ]
[ 4.9603543 3.8839452 9.893962 -5.6196766 2.5933034
-1.9516581 -8.230413 ]
[ -7.933528 -3.5193477 2.657087 -2.3083775 3.1224494
4.99346 6.6617928 ]]
[[ 8.464641 -0.7099503 2.302021 3.7608442 -9.808253
7.4395585 7.501337 ]
[ -2.5251894 3.3782656 -2.2453785 1.8856752 -4.347996
13.046864 8.456448 ]
[ 0.719531 5.6648893 5.0832977 -4.1559486 -2.263636
10.406567 6.3195763 ]]]
[[[ -4.5550904 -3.720043 3.1199975 2.1738605 -8.574187
-2.4273107 -5.072332 ]
[ -4.2602577 0.36366314 -4.5683694 4.178451 -8.062807
-6.557127 -7.0324516 ]
[ 8.537974 8.441982 4.864913 -14.189858 7.095237
1.5988588 -1.5192288 ]]
[[ 3.6944568 4.4403076 9.397589 -4.546336 -3.9134052
-3.4662483 -0.24406385]
[ 4.1908336 -4.4171796 -1.9225447 7.837098 -11.265582
-3.837552 14.160036 ]
[ 3.7344842 -4.670222 -17.679253 13.935692 -6.173209
1.6511383 1.2128376 ]]
[[ 6.2919884 -4.6020546 -5.4328456 4.5560393 -3.7783115
-2.6887546 2.5767186 ]
[ 6.787188 -0.13424832 11.590554 0.8781717 2.1341581
0.6424012 2.4818373 ]
[ 0.36873797 -1.0694993 2.4167862 6.3189936 -6.5165224
0.6907333 -1.3944467 ]]]
[[[ 3.421029 -7.233859 3.3495028 1.9169188 -0.28828853
-2.9511962 -4.618907 ]
[ 5.007436 5.3819504 -4.9620214 2.0950384 0.5609176
-4.2858677 1.514807 ]
[ 4.0171447 1.7605144 2.029901 -3.2808828 4.706432
0.86181307 -7.821994 ]]
[[ -5.0385923 -1.6944396 -9.382163 -2.0090818 5.3859253
-9.40564 -6.0278926 ]
[ -5.3338847 2.7189367 8.969738 -4.240023 -15.497588
10.853391 15.426717 ]
[ 7.1965146 5.5878873 -6.9999113 5.9089503 -3.8333137
-2.31907 5.3611073 ]]
[[ -2.8334084 -0.39519292 5.9286284 -5.9159756 6.7779465
-5.0923433 -5.3177834 ]
[ -8.954654 -1.6732624 -7.7512193 8.683105 -0.43687057
7.139389 5.237968 ]
[ -6.953234 -0.71392286 3.7499995 -1.5003002 2.8990993
15.865892 1.0296693 ]]]
[[[ 4.973996 -3.196669 0.2824005 -1.0465801 3.608333
4.3892016 -2.4723551 ]
[ -9.047925 -10.103672 -2.5059106 0.13098462 -0.19980884
-1.2837625 9.85107 ]
[ 8.653666 4.742559 7.8596897 -1.7765528 5.2112546
1.7150581 -4.5945582 ]]
[[ -5.1238627 -1.7859178 10.422352 -1.4375889 6.047653
-2.7019408 -6.6909037 ]
[-10.11571 1.0489686 0.9947159 -16.038723 1.5364237
-11.5860615 -0.5897728 ]
[ 1.715276 -1.6922637 0.36946785 -1.8722501 -1.1054568
-5.3501234 5.260828 ]]
[[ 4.4832516 3.4605289 2.655251 -5.193367 -5.8154745
-2.40253 -0.90614724]
[ -6.1823716 -0.5788322 -5.887986 1.7573938 -2.801522
-3.5710354 1.558593 ]
[ 3.386841 -2.2731526 3.5240433 4.1528316 -1.1139324
-4.701375 2.5103724 ]]]
[[[ 2.3088198 0.1576212 2.9027982 -2.0484095 -1.4965516
6.6314707 -5.9286933 ]
[ 3.922245 -4.2303414 7.2173495 -0.82356906 -4.565625
-7.048286 8.189629 ]
[ 9.92221 4.971711 3.62113 4.332257 1.8120606
-6.354764 -6.803279 ]]
[[ 0.5582811 0.22512491 -0.14138716 -9.232525 -4.4669757
-6.444928 -0.35495442]
[ -7.0769267 0.11286694 -2.6398146 -1.9807957 -1.5415475
6.77529 1.6627494 ]
[ -4.234903 3.8677368 1.8505411 1.6956189 -0.67265034
3.492041 2.699194 ]]
[[ -2.3700027 -5.072471 0.9853908 3.3275373 -3.4059224
-8.77684 -4.966244 ]
[ 6.8965716 -0.18738294 -1.7098974 -2.7875865 9.46776
-10.7062645 -14.834945 ]
[ 5.385265 3.7076745 -6.0929165 -0.6565029 -0.86310875
-8.78685 -4.969616 ]]]
[[[ -1.0209117 -4.2185674 -2.049982 -4.464074 -0.2671275
0.6496007 -1.1486138 ]
[ -1.3296125 -10.25571 -2.6270077 0.8397493 10.442083
-13.532871 -2.3582375 ]
[ 1.2241515 0.8895823 -5.6431136 -0.07153833 -6.4833794
2.367209 -3.1225934 ]]
[[ -1.3196164 8.285897 -4.7141843 -1.0256715 2.2417316
-5.4240646 1.4462825 ]
[ 5.586397 -2.7534332 12.254203 -3.8077755 19.0667
4.490488 -4.8286085 ]
[ 2.5509892 -1.5626694 13.281624 2.1947544 -9.041932
-3.7475128 -0.9359677 ]]
[[ -3.4364285 -3.5713546 4.0417204 0.31394115 -1.0756681
8.270457 0.6314969 ]
[-12.394723 -1.0741487 -7.0030975 -11.949853 5.8212543
-0.20166934 -4.0470276 ]
[ -2.460311 0.3859284 4.4872227 0.20786184 2.8219168
0.3782506 3.6827655 ]]]
[[[ 2.7063005 -1.3238144 3.1177645 -5.0840263 4.5578613
0.07863757 -3.0700552 ]
[ -2.008148 0.12366204 -0.7898965 -3.1715546 0.26139206
9.43925 -5.015103 ]
[ -1.5658057 4.0374494 4.104787 1.0457339 0.09459102
11.385288 7.7985954 ]]
[[ -2.9855955 -6.0000887 6.579556 -0.05770028 -0.6478224
9.684253 1.6530621 ]
[ -6.0577374 -1.8108991 0.38446543 -3.8347025 -5.3681655
-9.710058 5.249672 ]
[ 1.6688104 -4.2434406 0.0591527 -2.8747175 5.5640755
1.6630073 -3.383694 ]]
[[ -0.9499241 2.0315142 3.4428368 -5.4022408 1.2451274
-5.958596 -2.857951 ]
[ -0.51289654 -2.2868602 -2.035109 -0.03335524 5.4950924
0.7035148 -7.2624903 ]
[ 3.1216207 0.2532745 2.4681516 -3.3973331 4.235839
-7.8828998 1.6310639 ]]]
[[[-10.515576 -4.5501885 -5.0842285 -7.5735607 2.457988
-5.6815295 -6.0293984 ]
[ -2.4532561 12.281616 -3.941203 -10.871101 1.700299
6.669799 11.233063 ]
[ -0.71848714 -3.5167284 -4.0122576 0.9800604 -0.19633102
-4.852952 -10.5411215 ]]
[[ 11.680188 0.05068594 13.759515 -4.1095057 7.866522
-3.465414 -5.62963 ]
[ 0.5491446 -2.8228009 -15.9925995 9.0901165 -9.546025
7.689098 7.799924 ]
[ 3.489983 2.6987522 8.452219 -0.82351255 11.615891
-12.184435 -10.012669 ]]
[[ -1.2847803 2.5336533 -4.6983747 -1.5195134 4.887515
7.197543 4.566704 ]
[-11.077008 -3.807155 11.323916 -11.889059 1.7963223
8.54782 -5.0532045 ]
[ -2.7697368 -4.146005 -1.8596052 -2.6719205 1.8064184
-0.70393324 0.8676312 ]]]
[[[ -4.761016 -5.9982576 2.8612869 3.537052 2.1374872
-2.4504776 -1.9832699 ]
[ 5.7043376 -0.5752067 -2.0760405 7.471276 -6.9522486
-0.7939579 4.361729 ]
[ -1.0325197 1.5073726 -3.6527808 11.209878 -10.8710985
2.5047367 9.575737 ]]
[[ 7.1922426 -8.298925 13.826018 -5.753524 10.346201
1.1289907 -11.83487 ]
[ 1.4808033 -4.4347563 3.423127 11.154205 3.1012897
4.096381 6.1002216 ]
[ 2.966996 3.8355513 4.554683 0.7981096 -6.3219185
5.665936 4.33562 ]]
[[ 3.9837096 0.6084199 6.052963 -2.520135 5.9205747
-7.7821994 -4.444783 ]
[ 7.046544 1.1473477 3.7973588 2.1445422 -5.4242034
9.448392 3.4596193 ]
[ -5.2644525 -1.4216101 -1.0145 2.4781537 -0.5456511
-1.0106888 -0.29154396]]]]