mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
[js/webgpu] Support conv3d naive (#20706)
### Description <!-- Describe your changes. --> ### Motivation and Context <!-- - Why is this change required? What problem does it solve? - If it fixes an open issue, please link to the issue here. -->
This commit is contained in:
parent
01279d8896
commit
c3076721f3
4 changed files with 1227 additions and 8 deletions
407
js/web/lib/wasm/jsep/webgpu/ops/3rd-party/conv3d_naive_webgpu.ts
vendored
Normal file
407
js/web/lib/wasm/jsep/webgpu/ops/3rd-party/conv3d_naive_webgpu.ts
vendored
Normal file
|
|
@ -0,0 +1,407 @@
|
|||
/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC. All Rights Reserved.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* =============================================================================
|
||||
*/
|
||||
|
||||
// sampled from [@tensorflow/tfjs] tfjs-backend-webgpu/src/conv3d_naive_webgpu.ts
|
||||
//
|
||||
// modified to fit the needs of the project
|
||||
|
||||
import {DataType} from '../../../../wasm-common';
|
||||
import {LOG_DEBUG} from '../../../log';
|
||||
import {TensorView} from '../../../tensor-view';
|
||||
import {ShapeUtil} from '../../../util';
|
||||
import {ProgramInfo, ProgramInputTensorInfoDependency, ProgramUniform} from '../../types';
|
||||
import {createTensorShapeVariables, getElementAt, inputVariable, outputVariable, ShaderHelper, tensorTypeToWsglStorageType, UniformsArrayType} from '../common';
|
||||
import {ConvAttributes} from '../conv';
|
||||
|
||||
const arrayProduct = (arr: number[]) => {
|
||||
let product = 1;
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
product *= arr[i];
|
||||
}
|
||||
return product;
|
||||
};
|
||||
|
||||
const parse3TupleParam = (param: number|[number, number, number]): [number, number, number] =>
|
||||
typeof param === 'number' ? [param, param, param] : param;
|
||||
|
||||
const getEffectiveFilterSize = (filterSize: number, dilation: number): number => {
|
||||
if (dilation <= 1) {
|
||||
return filterSize;
|
||||
}
|
||||
|
||||
return filterSize + (filterSize - 1) * (dilation - 1);
|
||||
};
|
||||
|
||||
const computeDefaultPad =
|
||||
(inputShape: [number, number]|[number, number, number, number], fieldSize: number, stride: number, dilation = 1):
|
||||
number => {
|
||||
const effectiveFieldSize = getEffectiveFilterSize(fieldSize, dilation);
|
||||
return Math.floor((inputShape[0] * (stride - 1) - stride + effectiveFieldSize) / 2);
|
||||
};
|
||||
|
||||
const computeOutputShape4D =
|
||||
(inShape: [number, number, number, number], filterShape: [number, number, number], outChannels: number,
|
||||
strides: [number, number, number], zeroPad?: number): [number, number, number, number] => {
|
||||
if (zeroPad == null) {
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
zeroPad = computeDefaultPad(inShape, filterShape[0], strides[0]);
|
||||
}
|
||||
const outShape: [number, number, number, number] = [0, 0, 0, outChannels];
|
||||
for (let index = 0; index < 3; index++) {
|
||||
if (inShape[index] + 2 * zeroPad >= filterShape[index]) {
|
||||
outShape[index] = Math.trunc((inShape[index] - filterShape[index] + 2 * zeroPad) / strides[index] + 1);
|
||||
}
|
||||
}
|
||||
return outShape;
|
||||
};
|
||||
|
||||
const get3DPadAndOutInfo =
|
||||
(pad: number|string|number[], inDepth: number, inHeight: number, inWidth: number, strideDepth: number,
|
||||
strideHeight: number, strideWidth: number, filterDepth: number, filterHeight: number,
|
||||
filterWidth: number): {padInfo: PadInfo3D; outDepth: number; outHeight: number; outWidth: number} => {
|
||||
let padInfo: PadInfo3D;
|
||||
let outDepth: number;
|
||||
let outHeight: number;
|
||||
let outWidth: number;
|
||||
|
||||
if (pad === 'VALID') {
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
pad = 0;
|
||||
}
|
||||
|
||||
if (typeof pad === 'number') {
|
||||
padInfo = {top: pad, bottom: pad, left: pad, right: pad, front: pad, back: pad};
|
||||
const outShape = computeOutputShape4D(
|
||||
[inDepth, inHeight, inWidth, 1], [filterDepth, filterHeight, filterWidth], 1,
|
||||
[strideDepth, strideHeight, strideWidth], pad);
|
||||
outDepth = outShape[0];
|
||||
outHeight = outShape[1];
|
||||
outWidth = outShape[2];
|
||||
} else if (Array.isArray(pad)) {
|
||||
if (!pad.every((val, _, arr) => val === arr[0])) {
|
||||
throw Error(`Unsupported padding parameter: ${pad}`);
|
||||
}
|
||||
padInfo = {top: pad[0], bottom: pad[1], left: pad[2], right: pad[3], front: pad[4], back: pad[5]};
|
||||
const outShape = computeOutputShape4D(
|
||||
[inDepth, inHeight, inWidth, 1], [filterDepth, filterHeight, filterWidth], 1,
|
||||
[strideDepth, strideHeight, strideWidth], pad[0]);
|
||||
outDepth = outShape[0];
|
||||
outHeight = outShape[1];
|
||||
outWidth = outShape[2];
|
||||
} else if (pad === 'SAME_UPPER') {
|
||||
// TODO: support 'SAME_LOWER'.
|
||||
outDepth = Math.ceil(inDepth / strideDepth);
|
||||
outHeight = Math.ceil(inHeight / strideHeight);
|
||||
outWidth = Math.ceil(inWidth / strideWidth);
|
||||
const padAlongDepth = (outDepth - 1) * strideDepth + filterDepth - inDepth;
|
||||
const padAlongHeight = (outHeight - 1) * strideHeight + filterHeight - inHeight;
|
||||
const padAlongWidth = (outWidth - 1) * strideWidth + filterWidth - inWidth;
|
||||
const front = Math.floor(padAlongDepth / 2);
|
||||
const back = padAlongDepth - front;
|
||||
const top = Math.floor(padAlongHeight / 2);
|
||||
const bottom = padAlongHeight - top;
|
||||
const left = Math.floor(padAlongWidth / 2);
|
||||
const right = padAlongWidth - left;
|
||||
|
||||
padInfo = {top, bottom, left, right, front, back};
|
||||
} else {
|
||||
throw Error(`Unknown padding parameter: ${pad}`);
|
||||
}
|
||||
return {padInfo, outDepth, outHeight, outWidth};
|
||||
};
|
||||
|
||||
type PadInfo3D = {
|
||||
top: number; left: number; right: number; bottom: number; front: number; back: number;
|
||||
};
|
||||
|
||||
export type Conv3DInfo = {
|
||||
batchSize: number; inDepth: number; inHeight: number; inWidth: number; inChannels: number; outDepth: number;
|
||||
outHeight: number;
|
||||
outWidth: number;
|
||||
outChannels: number;
|
||||
dataFormat: 'channelsFirst' | 'channelsLast';
|
||||
strideDepth: number;
|
||||
strideHeight: number;
|
||||
strideWidth: number;
|
||||
dilationDepth: number;
|
||||
dilationHeight: number;
|
||||
dilationWidth: number;
|
||||
filterDepth: number;
|
||||
filterHeight: number;
|
||||
filterWidth: number;
|
||||
effectiveFilterDepth: number;
|
||||
effectiveFilterHeight: number;
|
||||
effectiveFilterWidth: number;
|
||||
padInfo: PadInfo3D;
|
||||
inShape: [number, number, number, number, number];
|
||||
outShape: [number, number, number, number, number];
|
||||
filterShape: [number, number, number, number, number];
|
||||
};
|
||||
|
||||
export const computeConv3DInfo =
|
||||
(inShape: [number, number, number, number, number], filterShape: [number, number, number, number, number],
|
||||
strides: number|[number, number, number], dilations: number|[number, number, number], pad: number|string|number[],
|
||||
depthwise = false, dataFormat: 'channelsFirst'|'channelsLast' = 'channelsLast'): Conv3DInfo => {
|
||||
let batchSize, inDepth, inHeight, inWidth, inChannels;
|
||||
if (dataFormat === 'channelsLast') {
|
||||
[batchSize, inDepth, inHeight, inWidth, inChannels] = inShape;
|
||||
} else if (dataFormat === 'channelsFirst') {
|
||||
[batchSize, inChannels, inDepth, inHeight, inWidth] = inShape;
|
||||
} else {
|
||||
throw new Error(`Unknown dataFormat ${dataFormat}`);
|
||||
}
|
||||
const [filterChannels, , filterDepth, filterHeight, filterWidth] = filterShape;
|
||||
|
||||
const [strideDepth, strideHeight, strideWidth] = parse3TupleParam(strides);
|
||||
const [dilationDepth, dilationHeight, dilationWidth] = parse3TupleParam(dilations);
|
||||
|
||||
const effectiveFilterDepth = getEffectiveFilterSize(filterDepth, dilationDepth);
|
||||
const effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
|
||||
const effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
|
||||
const {padInfo, outDepth, outHeight, outWidth} = get3DPadAndOutInfo(
|
||||
pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, effectiveFilterDepth,
|
||||
effectiveFilterHeight, effectiveFilterWidth);
|
||||
|
||||
const outChannels = depthwise ? filterChannels * inChannels : filterChannels;
|
||||
|
||||
let outShape: [number, number, number, number, number] = [0, 0, 0, 0, 0];
|
||||
if (dataFormat === 'channelsFirst') {
|
||||
outShape = [batchSize, outChannels, outDepth, outHeight, outWidth];
|
||||
} else if (dataFormat === 'channelsLast') {
|
||||
outShape = [batchSize, outDepth, outHeight, outWidth, outChannels];
|
||||
}
|
||||
|
||||
return {
|
||||
batchSize,
|
||||
dataFormat,
|
||||
inDepth,
|
||||
inHeight,
|
||||
inWidth,
|
||||
inChannels,
|
||||
outDepth,
|
||||
outHeight,
|
||||
outWidth,
|
||||
outChannels,
|
||||
padInfo,
|
||||
strideDepth,
|
||||
strideHeight,
|
||||
strideWidth,
|
||||
filterDepth,
|
||||
filterHeight,
|
||||
filterWidth,
|
||||
effectiveFilterDepth,
|
||||
effectiveFilterHeight,
|
||||
effectiveFilterWidth,
|
||||
dilationDepth,
|
||||
dilationHeight,
|
||||
dilationWidth,
|
||||
inShape,
|
||||
outShape,
|
||||
filterShape
|
||||
};
|
||||
};
|
||||
|
||||
export const createConv3DNaiveProgramInfo =
|
||||
(inputs: readonly TensorView[], attributes: ConvAttributes, outputShape: readonly number[],
|
||||
filterDims: readonly number[], pads: readonly number[], dataFormat: string): ProgramInfo => {
|
||||
const isChannelsLast = dataFormat === 'channelsLast';
|
||||
const inChannels = isChannelsLast ? inputs[0].dims[3] : inputs[0].dims[1];
|
||||
// TODO: enable vec4.
|
||||
const isVec4 = false;
|
||||
const workGroupSize: [number, number, number] = [64, 1, 1];
|
||||
const dispatchLayout = {x: outputShape.map((_, i) => i)};
|
||||
const dispatch = [Math.ceil(arrayProduct(dispatchLayout.x.map(d => outputShape[d])) / (workGroupSize[0])), 1, 1];
|
||||
|
||||
LOG_DEBUG('verbose', () => `[conv3d_naive_webgpu] dispatch = ${dispatch}`);
|
||||
|
||||
const innerElementSize = isVec4 ? (isChannelsLast && inChannels % 4 !== 0 ? 3 : 4) : 1;
|
||||
const outputSize = ShapeUtil.size(outputShape);
|
||||
const programUniforms: ProgramUniform[] = [
|
||||
{type: DataType.uint32, data: outputSize}, {type: DataType.uint32, data: filterDims},
|
||||
{type: DataType.uint32, data: pads}, {type: DataType.uint32, data: attributes.strides},
|
||||
{type: DataType.uint32, data: attributes.dilations}
|
||||
];
|
||||
programUniforms.push(...createTensorShapeVariables(inputs[0].dims, inputs[1].dims));
|
||||
const inputDependencies: ProgramInputTensorInfoDependency[] = ['rank', 'rank'];
|
||||
const hasBias = inputs.length === 3;
|
||||
if (hasBias) {
|
||||
programUniforms.push(...createTensorShapeVariables(inputs[2].dims));
|
||||
inputDependencies.push('rank');
|
||||
}
|
||||
programUniforms.push(...createTensorShapeVariables(outputShape));
|
||||
|
||||
const getShaderSource = (shaderHelper: ShaderHelper) => {
|
||||
const uniforms: UniformsArrayType = [
|
||||
{name: 'output_size', type: 'u32'}, {name: 'filter_dims', type: 'u32', length: filterDims.length},
|
||||
{name: 'pads', type: 'u32', length: pads.length},
|
||||
{name: 'strides', type: 'u32', length: attributes.strides.length},
|
||||
{name: 'dilations', type: 'u32', length: attributes.dilations.length}
|
||||
];
|
||||
// TODO: support component 2, 3.
|
||||
const components = isVec4 ? 4 : 1;
|
||||
const t = tensorTypeToWsglStorageType(inputs[0].dataType);
|
||||
|
||||
const x = inputVariable(
|
||||
'x', inputs[0].dataType, inputs[0].dims.length, innerElementSize === 3 ? 1 : innerElementSize);
|
||||
const w = inputVariable('W', inputs[1].dataType, inputs[1].dims.length, components);
|
||||
const inputVariables = [x, w];
|
||||
const output = outputVariable('result', inputs[0].dataType, outputShape.length, components);
|
||||
let declareFunctions = '';
|
||||
if (hasBias) {
|
||||
const bias = inputVariable('bias', inputs[2].dataType, inputs[2].dims.length, components);
|
||||
inputVariables.push(bias);
|
||||
declareFunctions += `
|
||||
fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${isVec4 ? `vec4<${t}>` : t} {
|
||||
return bias[${isChannelsLast ? getElementAt('coords', 4, 5) : getElementAt('coords', 1, 5)}${
|
||||
isVec4 ? '/ 4' : ''}];
|
||||
}`;
|
||||
}
|
||||
|
||||
return `
|
||||
${declareFunctions}
|
||||
fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {
|
||||
let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);
|
||||
return ${x.getByIndices('aIndices')};
|
||||
}
|
||||
fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {
|
||||
let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);
|
||||
return ${w.getByIndices('aIndices')};
|
||||
}
|
||||
${shaderHelper.registerUniforms(uniforms).declareVariables(...inputVariables, output)}
|
||||
${shaderHelper.mainStart()}
|
||||
${shaderHelper.guardAgainstOutOfBoundsWorkgroupSizes('uniforms.output_size')}
|
||||
let coords = ${output.offsetToIndices('global_idx')};
|
||||
let batch = ${getElementAt('coords', 0, x.rank)};
|
||||
let d2 = ${
|
||||
isChannelsLast ? getElementAt('coords', x.rank - 1, x.rank) : getElementAt('coords', 1, x.rank)};
|
||||
let xFRCCorner = vec3<u32>(${
|
||||
isChannelsLast ? getElementAt('coords', 1, x.rank) : getElementAt('coords', 2, x.rank)},
|
||||
${isChannelsLast ? getElementAt('coords', 2, x.rank) : getElementAt('coords', 3, x.rank)},
|
||||
${
|
||||
isChannelsLast ? getElementAt('coords', 3, x.rank) :
|
||||
getElementAt('coords', 4, x.rank)}) * uniforms.strides - uniforms.pads;
|
||||
let xFCorner = xFRCCorner.x;
|
||||
let xRCorner = xFRCCorner.y;
|
||||
let xCCorner = xFRCCorner.z;
|
||||
let xShapeY = ${
|
||||
isChannelsLast ? getElementAt('uniforms.x_shape', 1, x.rank) : getElementAt('uniforms.x_shape', 2, x.rank)};
|
||||
let xShapeZ = ${
|
||||
isChannelsLast ? getElementAt('uniforms.x_shape', 2, x.rank) : getElementAt('uniforms.x_shape', 3, x.rank)};
|
||||
let xShapeW = ${
|
||||
isChannelsLast ? getElementAt('uniforms.x_shape', 3, x.rank) : getElementAt('uniforms.x_shape', 4, x.rank)};
|
||||
let xShapeU = ${
|
||||
isChannelsLast ? getElementAt('uniforms.x_shape', 4, x.rank) : getElementAt('uniforms.x_shape', 1, x.rank)};
|
||||
let inputDepthNearestVec4 = (xShapeU / 4) * 4;
|
||||
let inputDepthVec4Remainder = xShapeU % 4;
|
||||
|
||||
var dotProd = 0.0;
|
||||
for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) {
|
||||
let xF = xFCorner + wF * uniforms.dilations[0];
|
||||
if (xF < 0 || xF >= xShapeY) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) {
|
||||
let xR = xRCorner + wR * uniforms.dilations[1];
|
||||
if (xR < 0 || xR >= xShapeZ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) {
|
||||
let xC = xCCorner + wC * uniforms.dilations[2];
|
||||
if (xC < 0 || xC >= xShapeW) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) {
|
||||
${
|
||||
isChannelsLast ? `let xValues = vec4<f32>(
|
||||
getX(batch, xF, xR, xC, d1),
|
||||
getX(batch, xF, xR, xC, d1 + 1),
|
||||
getX(batch, xF, xR, xC, d1 + 2),
|
||||
getX(batch, xF, xR, xC, d1 + 3));
|
||||
` :
|
||||
`let xValues = vec4<f32>(
|
||||
getX(batch, d1, xF, xR, xC),
|
||||
getX(batch, d1 + 1, xF, xR, xC),
|
||||
getX(batch, d1 + 2, xF, xR, xC),
|
||||
getX(batch, d1 + 3, xF, xR, xC));
|
||||
`}
|
||||
let wValues = vec4<f32>(
|
||||
getW(d2, d1, wF, wR, wC),
|
||||
getW(d2, d1 + 1, wF, wR, wC),
|
||||
getW(d2, d1 + 2, wF, wR, wC),
|
||||
getW(d2, d1 + 3, wF, wR, wC));
|
||||
dotProd += dot(xValues, wValues);
|
||||
}
|
||||
if (inputDepthVec4Remainder == 1) {
|
||||
${
|
||||
isChannelsLast ? `dotProd += getX(batch, xF, xR, xC, inputDepthNearestVec4)
|
||||
* getW(d2, inputDepthNearestVec4, wF, wR, wC);` :
|
||||
`dotProd += getX(batch, inputDepthNearestVec4, xF, xR, xC)
|
||||
* getW(d2, inputDepthNearestVec4, wF, wR, wC);`}
|
||||
} else if (inputDepthVec4Remainder == 2) {
|
||||
${
|
||||
isChannelsLast ? `let xValues = vec2<f32>(
|
||||
getX(batch, xF, xR, xC, inputDepthNearestVec4),
|
||||
getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1));
|
||||
` :
|
||||
`let xValues = vec2<f32>(
|
||||
getX(batch, inputDepthNearestVec4, xF, xR, xC),
|
||||
getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC));
|
||||
`}
|
||||
let wValues = vec2<f32>(
|
||||
getW(d2, inputDepthNearestVec4, wF, wR, wC),
|
||||
getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC));
|
||||
dotProd += dot(xValues, wValues);
|
||||
} else if (inputDepthVec4Remainder == 3) {
|
||||
${
|
||||
isChannelsLast ? `let xValues = vec3<f32>(
|
||||
getX(batch, xF, xR, xC, inputDepthNearestVec4),
|
||||
getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1),
|
||||
getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2));
|
||||
` :
|
||||
`let xValues = vec3<f32>(
|
||||
getX(batch, inputDepthNearestVec4, xF, xR, xC),
|
||||
getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC),
|
||||
getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC));
|
||||
`}
|
||||
let wValues = vec3<f32>(
|
||||
getW(d2, inputDepthNearestVec4, wF, wR, wC),
|
||||
getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC),
|
||||
getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC));
|
||||
dotProd += dot(xValues, wValues);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
${hasBias ? 'dotProd = dotProd + getBiasByOutputCoords(coords)' : ''};
|
||||
result[global_idx] = f32(dotProd);
|
||||
}`;
|
||||
};
|
||||
return {
|
||||
name: 'Conv3DNaive',
|
||||
shaderCache:
|
||||
{hint: `${attributes.cacheKey};${isChannelsLast};${innerElementSize};${hasBias}`, inputDependencies},
|
||||
getRunData: () => ({
|
||||
outputs: [{dims: outputShape, dataType: inputs[0].dataType}],
|
||||
dispatchGroup: {x: dispatch[0], y: dispatch[1], z: dispatch[2]},
|
||||
programUniforms,
|
||||
}),
|
||||
getShaderSource
|
||||
};
|
||||
};
|
||||
|
|
@ -7,6 +7,7 @@ import {AttributeWithCacheKey} from '../attribute-with-cache-key';
|
|||
import {ComputeContext} from '../types';
|
||||
|
||||
import {createConv2DMatMulProgramInfo} from './3rd-party/conv2d_mm_webgpu';
|
||||
import {computeConv3DInfo, createConv3DNaiveProgramInfo} from './3rd-party/conv3d_naive_webgpu';
|
||||
import {createMatmulProgramInfo} from './3rd-party/matmul_packed_webgpu';
|
||||
import {createGroupedConvProgramInfo, createGroupedConvVectorizeProgramInfo} from './conv-grouped';
|
||||
import {InternalActivationAttributes, parseInternalActivationAttributes} from './fuse-utils';
|
||||
|
|
@ -51,9 +52,8 @@ const validateInputs = (inputs: readonly TensorView[], attributes: ConvAttribute
|
|||
throw new Error('Conv requires 2 or 3 inputs');
|
||||
}
|
||||
|
||||
// TODO : Need to add support for multi-dimensional conv
|
||||
if (inputs[0].dims.length !== 4 && inputs[0].dims.length !== 3) {
|
||||
throw new Error('currently only support conv 1D and 2D');
|
||||
if (inputs[0].dims.length > 5) {
|
||||
throw new Error('greater than 5D is not supported');
|
||||
}
|
||||
|
||||
if (inputs[0].dims.length !== inputs[1].dims.length) {
|
||||
|
|
@ -119,11 +119,11 @@ export const parseConvAttributes = (attributes: Record<string, unknown>): ConvAt
|
|||
// TODO : Make this generic enough to compute default attributes for multi-dimensional conv
|
||||
const format = attributes.format as 'NHWC' | 'NCHW';
|
||||
const autoPad = ['NOTSET', 'VALID', 'SAME_UPPER', 'SAME_LOWER'][attributes.auto_pad as number];
|
||||
const dilations = attributes.dilations as [number, number];
|
||||
const dilations = attributes.dilations as number[];
|
||||
const group = attributes.group as number;
|
||||
const kernelShape = attributes.kernel_shape as [number, number];
|
||||
const pads = attributes.pads as [number, number, number, number];
|
||||
const strides = attributes.strides as [number, number];
|
||||
const kernelShape = attributes.kernel_shape as number[];
|
||||
const pads = attributes.pads as number[];
|
||||
const strides = attributes.strides as number[];
|
||||
const wIsConst = (attributes.w_is_const as () => boolean)();
|
||||
|
||||
return {
|
||||
|
|
@ -303,10 +303,27 @@ const conv1d = (context: ComputeContext, attributes: ConvAttributes): void => {
|
|||
outputShape => isChannelLast ? [outputShape[0], outputShape[2], outputShape[3]] : []));
|
||||
};
|
||||
|
||||
const conv3d = (context: ComputeContext, inputs: readonly TensorView[], attributes: ConvAttributes): void => {
|
||||
const format = attributes.format === 'NHWC' ? 'channelsLast' : 'channelsFirst';
|
||||
const adjustedAttributes = getAdjustedConvAttributes(attributes, inputs);
|
||||
const pads = attributes.autoPad === 'NOTSET' ? attributes.pads : attributes.autoPad;
|
||||
const convInfo = computeConv3DInfo(
|
||||
inputs[0].dims as [number, number, number, number, number],
|
||||
inputs[1].dims as [number, number, number, number, number],
|
||||
attributes.strides as number | [number, number, number],
|
||||
attributes.dilations as number | [number, number, number], pads as string | number[], false, format);
|
||||
context.compute(createConv3DNaiveProgramInfo(
|
||||
inputs, adjustedAttributes, convInfo.outShape,
|
||||
[convInfo.filterDepth, convInfo.filterHeight, convInfo.filterWidth],
|
||||
[convInfo.padInfo.front, convInfo.padInfo.top, convInfo.padInfo.left], format));
|
||||
};
|
||||
|
||||
export const conv = (context: ComputeContext, attributes: ConvAttributes): void => {
|
||||
validateInputs(context.inputs, attributes); // currently will fail if not conv1D/2D
|
||||
validateInputs(context.inputs, attributes);
|
||||
if (context.inputs[0].dims.length === 3) {
|
||||
conv1d(context, attributes);
|
||||
} else if (context.inputs[0].dims.length === 5) {
|
||||
conv3d(context, context.inputs, attributes);
|
||||
} else {
|
||||
conv2d(context, context.inputs, attributes);
|
||||
}
|
||||
|
|
|
|||
794
js/web/test/data/ops/conv3dncdhw.jsonc
Normal file
794
js/web/test/data/ops/conv3dncdhw.jsonc
Normal file
|
|
@ -0,0 +1,794 @@
|
|||
[
|
||||
{
|
||||
"name": "conv3d, x=[1, 1, 2, 1, 2], f=[2, 1, 2, 1, 2], s=1, d=1, p=valid",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [0.25, 0.5, 0.75, 1],
|
||||
"dims": [1, 1, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1],
|
||||
"dims": [2, 1, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [0.9375, 2.1875],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 2, 2, 1, 2] f=[2, 2, 2, 1, 2], s=1, d=1, p=valid",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2],
|
||||
"dims": [1, 2, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2],
|
||||
"dims": [2, 2, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [6.375, 15.375],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 3, 2, 1, 2], f=[2, 3, 2, 1, 2], s=1, d=1, p=VALID",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
6.300000190734863, 5.400000095367432, 2.700000047683716, 1.100000023841858, 0.30000001192092896,
|
||||
7.599999904632568, 9.699999809265137, 1.100000023841858, 7.099999904632568, 4.300000190734863,
|
||||
0.6000000238418579, 9.5
|
||||
],
|
||||
"dims": [1, 3, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
7.900000095367432, 9.100000381469727, 8.399999618530273, 10.0, 7.599999904632568, 1.7999999523162842,
|
||||
2.700000047683716, 1.399999976158142, 2.0999999046325684, 1.399999976158142, 7.900000095367432, 5.0, 7.5,
|
||||
9.199999809265137, 1.899999976158142, 4.300000190734863, 4.099999904632568, 4.800000190734863, 10.0,
|
||||
8.300000190734863, 7.0, 7.5, 4.199999809265137, 3.299999952316284
|
||||
],
|
||||
"dims": [2, 3, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [249.4499969482422, 366.45001220703125],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 4, 2, 1, 2], f=[2, 4, 2, 1, 2], s=1, d=1, p=VALID",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
4.599999904632568, 3.4000000953674316, 4.800000190734863, 7.699999809265137, 3.0, 3.0999999046325684,
|
||||
4.699999809265137, 7.800000190734863, 8.899999618530273, 8.100000381469727, 8.0, 3.200000047683716,
|
||||
5.199999809265137, 1.399999976158142, 5.900000095367432, 0.6000000238418579
|
||||
],
|
||||
"dims": [1, 4, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
9.600000381469727, 4.599999904632568, 1.0, 6.099999904632568, 3.700000047683716, 6.099999904632568,
|
||||
7.800000190734863, 5.900000095367432, 1.0, 2.0, 8.600000381469727, 1.899999976158142, 3.5999999046325684,
|
||||
4.199999809265137, 5.900000095367432, 7.199999809265137, 4.800000190734863, 4.599999904632568,
|
||||
1.100000023841858, 0.5, 1.2999999523162842, 8.600000381469727, 7.0, 2.0999999046325684, 5.0,
|
||||
7.300000190734863, 9.5, 7.099999904632568, 1.0, 2.5, 1.7999999523162842, 4.800000190734863
|
||||
],
|
||||
"dims": [2, 4, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [387.97003173828125, 351.239990234375],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 5, 2, 1, 2], f=[2, 5, 2, 1, 2], s=1, d=1, p=VALID",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
0.4000000059604645, 0.6000000238418579, 2.0, 1.7000000476837158, 8.5, 8.199999809265137,
|
||||
9.100000381469727, 3.0999999046325684, 3.0, 9.800000190734863, 5.800000190734863, 2.700000047683716, 5.0,
|
||||
8.899999618530273, 10.0, 6.599999904632568, 6.300000190734863, 8.399999618530273, 9.899999618530273,
|
||||
4.400000095367432
|
||||
],
|
||||
"dims": [1, 5, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
1.2999999523162842, 3.700000047683716, 3.200000047683716, 0.4000000059604645, 9.0, 9.199999809265137, 9.5,
|
||||
8.699999809265137, 3.0, 7.300000190734863, 5.5, 8.0, 0.6000000238418579, 8.300000190734863,
|
||||
0.699999988079071, 0.4000000059604645, 1.7000000476837158, 6.599999904632568, 5.400000095367432, 3.0, 3.0,
|
||||
7.699999809265137, 8.5, 5.199999809265137, 8.199999809265137, 2.799999952316284, 7.900000095367432,
|
||||
9.899999618530273, 1.399999976158142, 7.699999809265137, 2.9000000953674316, 4.699999809265137,
|
||||
1.899999976158142, 5.300000190734863, 5.699999809265137, 1.0, 0.4000000059604645, 4.400000095367432,
|
||||
4.599999904632568, 8.399999618530273
|
||||
],
|
||||
"dims": [2, 5, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [628.5400390625, 578.3199462890625],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 6, 2, 1, 2], f=[2, 6, 2, 1, 2], s=1, d=1, p=VALID",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
8.699999809265137, 1.2000000476837158, 7.800000190734863, 9.5, 0.20000000298023224, 6.599999904632568,
|
||||
5.900000095367432, 4.300000190734863, 9.100000381469727, 0.699999988079071, 7.099999904632568,
|
||||
9.600000381469727, 3.0, 6.199999809265137, 1.899999976158142, 3.5, 3.0999999046325684, 4.599999904632568,
|
||||
9.899999618530273, 3.700000047683716, 7.800000190734863, 2.0, 1.100000023841858, 8.699999809265137
|
||||
],
|
||||
"dims": [1, 6, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
4.699999809265137, 8.899999618530273, 0.6000000238418579, 7.900000095367432, 7.199999809265137,
|
||||
9.899999618530273, 6.300000190734863, 2.200000047683716, 4.0, 8.100000381469727, 3.5999999046325684,
|
||||
8.399999618530273, 4.5, 1.0, 1.0, 9.899999618530273, 0.30000001192092896, 6.400000095367432, 7.5, 8.5,
|
||||
2.799999952316284, 3.4000000953674316, 7.599999904632568, 3.700000047683716, 5.199999809265137, 10.0,
|
||||
2.4000000953674316, 0.800000011920929, 1.399999976158142, 5.800000190734863, 6.400000095367432, 3.5,
|
||||
3.4000000953674316, 5.199999809265137, 7.599999904632568, 7.800000190734863, 0.20000000298023224,
|
||||
7.900000095367432, 0.20000000298023224, 3.799999952316284, 2.299999952316284, 1.7000000476837158, 2.0,
|
||||
9.699999809265137, 9.800000190734863, 1.2000000476837158, 2.799999952316284, 5.900000095367432
|
||||
],
|
||||
"dims": [2, 6, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [654.489990234375, 605.5],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 7, 2, 1, 2], f=[2, 7, 2, 1, 2], s=1, d=1, p=VALID",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [2, 1, 2], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
5.099999904632568, 4.300000190734863, 3.0999999046325684, 7.0, 3.0, 0.8999999761581421, 9.5,
|
||||
6.300000190734863, 4.400000095367432, 9.399999618530273, 4.900000095367432, 1.600000023841858, 6.5, 6.0,
|
||||
6.400000095367432, 4.599999904632568, 3.5999999046325684, 6.900000095367432, 0.20000000298023224,
|
||||
2.0999999046325684, 6.699999809265137, 6.099999904632568, 9.399999618530273, 1.100000023841858,
|
||||
2.0999999046325684, 4.800000190734863, 1.100000023841858, 5.599999904632568
|
||||
],
|
||||
"dims": [1, 7, 2, 1, 2],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
4.300000190734863, 8.0, 6.900000095367432, 1.899999976158142, 3.799999952316284, 6.800000190734863,
|
||||
3.700000047683716, 5.099999904632568, 3.799999952316284, 6.099999904632568, 4.5, 7.199999809265137,
|
||||
0.30000001192092896, 6.699999809265137, 6.900000095367432, 8.5, 2.5, 1.100000023841858,
|
||||
0.6000000238418579, 6.599999904632568, 2.299999952316284, 0.8999999761581421, 4.599999904632568, 4.5,
|
||||
3.5999999046325684, 3.0999999046325684, 5.800000190734863, 8.199999809265137, 2.0999999046325684,
|
||||
6.900000095367432, 9.699999809265137, 7.800000190734863, 2.5, 5.800000190734863, 8.300000190734863,
|
||||
0.699999988079071, 5.5, 4.900000095367432, 1.2000000476837158, 0.30000001192092896, 0.10000000149011612,
|
||||
1.100000023841858, 7.400000095367432, 6.699999809265137, 0.8999999761581421, 0.4000000059604645,
|
||||
1.7999999523162842, 9.199999809265137, 3.9000000953674316, 6.699999809265137, 5.599999904632568,
|
||||
6.699999809265137, 3.0999999046325684, 4.699999809265137, 6.699999809265137, 9.100000381469727
|
||||
],
|
||||
"dims": [2, 7, 2, 1, 2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [583.260009765625, 623.1699829101562],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 3, 3, 3, 3], f=[2, 3, 3, 3, 3], s=1, d=1, p=VALID",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [3, 3, 3], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "VALID", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
6.800000190734863, 7.900000095367432, 9.800000190734863, 6.300000190734863, 3.9000000953674316,
|
||||
4.099999904632568, 2.5, 0.4000000059604645, 3.0999999046325684, 4.300000190734863, 4.800000190734863,
|
||||
3.0999999046325684, 6.699999809265137, 8.699999809265137, 9.100000381469727, 9.100000381469727,
|
||||
9.800000190734863, 3.0, 1.100000023841858, 3.799999952316284, 3.5999999046325684, 7.5,
|
||||
0.20000000298023224, 8.0, 6.5, 1.0, 0.699999988079071, 8.399999618530273, 6.300000190734863,
|
||||
2.0999999046325684, 6.400000095367432, 7.0, 9.399999618530273, 3.9000000953674316, 1.7999999523162842,
|
||||
9.800000190734863, 7.599999904632568, 4.199999809265137, 3.5999999046325684, 6.599999904632568,
|
||||
4.699999809265137, 2.9000000953674316, 3.200000047683716, 4.900000095367432, 3.0999999046325684,
|
||||
0.6000000238418579, 5.400000095367432, 5.099999904632568, 1.0, 9.100000381469727, 5.0, 6.199999809265137,
|
||||
9.199999809265137, 3.0, 7.0, 4.400000095367432, 0.8999999761581421, 7.900000095367432, 1.5, 9.0,
|
||||
1.899999976158142, 2.299999952316284, 5.5, 2.9000000953674316, 3.5, 4.400000095367432, 6.199999809265137,
|
||||
6.300000190734863, 5.199999809265137, 0.30000001192092896, 3.799999952316284, 0.699999988079071,
|
||||
7.400000095367432, 0.5, 1.2999999523162842, 4.900000095367432, 2.4000000953674316, 9.5, 4.599999904632568,
|
||||
6.400000095367432, 9.0
|
||||
],
|
||||
"dims": [1, 3, 3, 3, 3],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
8.199999809265137, 6.099999904632568, 1.0, 5.599999904632568, 0.10000000149011612, 3.700000047683716,
|
||||
9.399999618530273, 5.699999809265137, 1.2999999523162842, 9.899999618530273, 9.399999618530273,
|
||||
6.099999904632568, 9.100000381469727, 6.900000095367432, 5.400000095367432, 9.800000190734863,
|
||||
8.899999618530273, 4.599999904632568, 6.900000095367432, 3.0, 5.199999809265137, 9.699999809265137, 2.0,
|
||||
6.900000095367432, 8.699999809265137, 4.0, 8.100000381469727, 5.400000095367432, 4.0, 5.5,
|
||||
7.300000190734863, 8.399999618530273, 9.600000381469727, 4.699999809265137, 4.300000190734863, 2.0,
|
||||
0.10000000149011612, 9.699999809265137, 3.299999952316284, 0.4000000059604645, 2.0, 7.099999904632568,
|
||||
3.200000047683716, 3.200000047683716, 7.900000095367432, 9.399999618530273, 1.0, 4.599999904632568,
|
||||
0.30000001192092896, 3.5, 1.7999999523162842, 1.7999999523162842, 7.400000095367432, 0.20000000298023224,
|
||||
5.300000190734863, 0.800000011920929, 2.200000047683716, 9.100000381469727, 3.0, 1.2999999523162842,
|
||||
7.599999904632568, 5.900000095367432, 5.599999904632568, 6.800000190734863, 7.400000095367432,
|
||||
3.9000000953674316, 1.7000000476837158, 4.0, 5.099999904632568, 0.10000000149011612, 10.0, 10.0,
|
||||
1.600000023841858, 6.300000190734863, 5.400000095367432, 0.10000000149011612, 7.400000095367432,
|
||||
1.2999999523162842, 1.2999999523162842, 5.0, 6.5, 3.0, 8.300000190734863, 5.800000190734863,
|
||||
2.299999952316284, 1.7999999523162842, 5.099999904632568, 6.400000095367432, 7.0, 9.199999809265137,
|
||||
9.199999809265137, 2.0999999046325684, 0.0, 4.900000095367432, 8.199999809265137, 9.0, 9.899999618530273,
|
||||
9.199999809265137, 2.5, 0.699999988079071, 7.599999904632568, 7.599999904632568, 5.900000095367432,
|
||||
9.800000190734863, 8.600000381469727, 6.800000190734863, 7.199999809265137, 2.0999999046325684,
|
||||
5.099999904632568, 7.5, 1.2000000476837158, 4.300000190734863, 3.0999999046325684, 8.600000381469727,
|
||||
0.8999999761581421, 5.5, 8.699999809265137, 4.599999904632568, 0.30000001192092896, 1.0,
|
||||
5.099999904632568, 2.700000047683716, 9.800000190734863, 0.6000000238418579, 4.699999809265137,
|
||||
3.4000000953674316, 6.800000190734863, 5.199999809265137, 1.5, 0.30000001192092896, 5.699999809265137,
|
||||
4.5, 6.900000095367432, 5.5, 6.5, 1.899999976158142, 3.700000047683716, 0.699999988079071,
|
||||
6.099999904632568, 6.699999809265137, 2.799999952316284, 7.099999904632568, 2.0999999046325684,
|
||||
4.300000190734863, 7.199999809265137, 9.600000381469727, 2.299999952316284, 1.7000000476837158,
|
||||
2.5999999046325684, 8.0, 1.600000023841858, 4.5, 6.0, 5.400000095367432, 2.799999952316284,
|
||||
8.100000381469727, 8.399999618530273, 4.199999809265137, 0.30000001192092896, 7.5, 9.600000381469727,
|
||||
9.699999809265137
|
||||
],
|
||||
"dims": [2, 3, 3, 3, 3],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [2017.72998046875, 2179.419921875],
|
||||
"dims": [1, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d, x=[1, 3, 3, 3, 3], f=[2, 3, 3, 3, 3], s=1, d=1, p=SAME_UPPER",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [3, 3, 3], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "SAME_UPPER", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
8.399999618530273, 4.5, 9.600000381469727, 4.699999809265137, 9.600000381469727, 5.300000190734863,
|
||||
7.699999809265137, 3.0, 1.7999999523162842, 6.599999904632568, 2.299999952316284, 0.10000000149011612,
|
||||
3.0999999046325684, 5.400000095367432, 4.400000095367432, 6.800000190734863, 1.5, 3.5999999046325684,
|
||||
6.199999809265137, 8.300000190734863, 5.400000095367432, 5.400000095367432, 4.199999809265137,
|
||||
6.599999904632568, 3.200000047683716, 7.199999809265137, 7.0, 5.099999904632568, 4.599999904632568, 1.0,
|
||||
6.599999904632568, 3.5999999046325684, 1.5, 4.699999809265137, 8.300000190734863, 0.8999999761581421, 5.5,
|
||||
1.2999999523162842, 3.5, 2.700000047683716, 2.0999999046325684, 9.899999618530273, 0.800000011920929,
|
||||
7.699999809265137, 8.0, 0.5, 5.599999904632568, 5.599999904632568, 0.0, 5.699999809265137,
|
||||
2.200000047683716, 1.7000000476837158, 7.300000190734863, 3.0999999046325684, 6.599999904632568, 6.0,
|
||||
6.699999809265137, 0.20000000298023224, 4.0, 7.800000190734863, 0.800000011920929, 2.5999999046325684,
|
||||
8.5, 5.5, 3.5999999046325684, 1.7999999523162842, 2.0999999046325684, 6.400000095367432, 6.0,
|
||||
8.699999809265137, 6.199999809265137, 4.400000095367432, 4.099999904632568, 0.8999999761581421,
|
||||
6.199999809265137, 0.30000001192092896, 5.5, 7.199999809265137, 4.0, 7.599999904632568, 2.200000047683716
|
||||
],
|
||||
"dims": [1, 3, 3, 3, 3],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
3.200000047683716, 6.599999904632568, 2.0, 7.300000190734863, 1.899999976158142, 9.600000381469727,
|
||||
8.800000190734863, 2.5, 5.199999809265137, 8.399999618530273, 6.199999809265137, 0.30000001192092896,
|
||||
3.5999999046325684, 9.600000381469727, 7.199999809265137, 2.799999952316284, 6.699999809265137,
|
||||
4.199999809265137, 4.300000190734863, 5.5, 6.5, 7.300000190734863, 0.4000000059604645, 6.800000190734863,
|
||||
4.300000190734863, 2.299999952316284, 9.899999618530273, 4.5, 1.7999999523162842, 5.300000190734863,
|
||||
8.699999809265137, 8.300000190734863, 9.0, 0.6000000238418579, 7.099999904632568, 4.400000095367432,
|
||||
9.699999809265137, 2.200000047683716, 1.2000000476837158, 5.0, 3.5, 0.6000000238418579, 0.800000011920929,
|
||||
3.4000000953674316, 1.100000023841858, 0.30000001192092896, 9.800000190734863, 6.400000095367432,
|
||||
1.2999999523162842, 8.100000381469727, 1.899999976158142, 2.200000047683716, 6.599999904632568,
|
||||
3.5999999046325684, 8.5, 4.800000190734863, 6.800000190734863, 4.400000095367432, 9.0, 1.5,
|
||||
0.699999988079071, 10.0, 8.0, 4.099999904632568, 9.100000381469727, 9.800000190734863, 3.0,
|
||||
3.299999952316284, 0.10000000149011612, 9.600000381469727, 1.399999976158142, 0.4000000059604645,
|
||||
4.900000095367432, 5.5, 9.5, 8.699999809265137, 7.5, 2.4000000953674316, 6.800000190734863,
|
||||
3.299999952316284, 3.5999999046325684, 6.199999809265137, 9.600000381469727, 2.9000000953674316,
|
||||
9.199999809265137, 0.0, 3.700000047683716, 5.599999904632568, 0.0, 7.0, 7.099999904632568,
|
||||
8.699999809265137, 3.0, 0.6000000238418579, 2.4000000953674316, 6.699999809265137, 2.4000000953674316,
|
||||
3.5999999046325684, 7.900000095367432, 3.799999952316284, 6.0, 6.599999904632568, 0.30000001192092896,
|
||||
0.20000000298023224, 8.899999618530273, 4.400000095367432, 4.0, 7.599999904632568, 2.0, 6.199999809265137,
|
||||
4.400000095367432, 7.300000190734863, 7.099999904632568, 5.599999904632568, 7.599999904632568,
|
||||
3.799999952316284, 1.7000000476837158, 2.4000000953674316, 6.5, 5.099999904632568, 1.2999999523162842,
|
||||
3.700000047683716, 8.399999618530273, 6.699999809265137, 0.699999988079071, 6.800000190734863,
|
||||
8.100000381469727, 6.699999809265137, 3.799999952316284, 9.800000190734863, 3.0999999046325684, 9.0, 3.0,
|
||||
4.800000190734863, 9.0, 0.6000000238418579, 5.5, 2.200000047683716, 4.599999904632568, 6.300000190734863,
|
||||
2.299999952316284, 0.699999988079071, 6.900000095367432, 9.0, 2.4000000953674316, 0.800000011920929,
|
||||
7.400000095367432, 5.5, 3.799999952316284, 9.800000190734863, 6.0, 5.699999809265137, 5.099999904632568,
|
||||
8.0, 8.399999618530273, 5.0, 8.800000190734863, 9.300000190734863, 8.0, 2.9000000953674316,
|
||||
5.800000190734863, 3.5
|
||||
],
|
||||
"dims": [2, 3, 3, 3, 3],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [
|
||||
487.2500305175781, 689.6099853515625, 552.9700317382812, 808.4199829101562, 1176.8800048828125,
|
||||
881.7599487304688, 490.28997802734375, 967.3399658203125, 731.25, 750.389892578125, 1191.6900634765625,
|
||||
863.1399536132812, 1178.9097900390625, 1969.429931640625, 1332.170166015625, 775.0399780273438,
|
||||
1317.969970703125, 1000.9500122070312, 484.0299987792969, 728.6400146484375, 567.3099975585938,
|
||||
700.3800048828125, 1244.590087890625, 966.1201171875, 496.76995849609375, 957.3800048828125,
|
||||
769.7799682617188, 585.469970703125, 874.6099243164062, 450.8900146484375, 983.4099731445312,
|
||||
1313.3599853515625, 746.219970703125, 661.8699340820312, 961.77001953125, 644.1100463867188,
|
||||
801.2799682617188, 1255.02978515625, 732.27001953125, 1323.369873046875, 1902.0399169921875,
|
||||
1330.7901611328125, 895.3799438476562, 1359.68994140625, 991.4299926757812, 486.4100036621094,
|
||||
759.3099975585938, 435.15997314453125, 814.739990234375, 1174.409912109375, 792.22998046875, 563.25,
|
||||
861.0, 587.6099853515625
|
||||
],
|
||||
"dims": [1, 2, 3, 3, 3],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d with bias, x=[1, 3, 3, 3, 3], f=[2, 3, 3, 3, 3], s=1, d=1, p=SAME_UPPER",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [3, 3, 3], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "SAME_UPPER", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
0.10000000149011612, 5.5, 7.400000095367432, 9.699999809265137, 9.5, 10.0, 2.5, 5.400000095367432,
|
||||
1.600000023841858, 6.300000190734863, 1.7000000476837158, 8.899999618530273, 2.0999999046325684,
|
||||
6.800000190734863, 0.8999999761581421, 3.0999999046325684, 1.399999976158142, 1.100000023841858, 9.5, 5.5,
|
||||
0.800000011920929, 5.400000095367432, 9.699999809265137, 8.300000190734863, 4.800000190734863, 4.0,
|
||||
8.399999618530273, 7.300000190734863, 9.199999809265137, 4.0, 4.300000190734863, 4.099999904632568, 8.5,
|
||||
8.800000190734863, 3.5999999046325684, 4.900000095367432, 6.400000095367432, 8.199999809265137,
|
||||
5.099999904632568, 7.400000095367432, 6.300000190734863, 4.400000095367432, 0.10000000149011612,
|
||||
8.899999618530273, 8.300000190734863, 0.6000000238418579, 0.10000000149011612, 3.0999999046325684, 9.0,
|
||||
1.7000000476837158, 9.699999809265137, 4.699999809265137, 1.5, 6.900000095367432, 0.10000000149011612,
|
||||
0.699999988079071, 8.199999809265137, 4.599999904632568, 1.600000023841858, 3.700000047683716,
|
||||
1.600000023841858, 4.199999809265137, 1.2000000476837158, 0.10000000149011612, 9.0, 9.399999618530273,
|
||||
9.199999809265137, 7.5, 6.699999809265137, 1.2000000476837158, 6.699999809265137, 6.5, 0.5,
|
||||
3.5999999046325684, 3.4000000953674316, 4.599999904632568, 8.800000190734863, 1.100000023841858, 2.5,
|
||||
6.599999904632568, 8.0
|
||||
],
|
||||
"dims": [1, 3, 3, 3, 3],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [
|
||||
7.400000095367432, 5.900000095367432, 2.5999999046325684, 5.300000190734863, 7.599999904632568,
|
||||
5.300000190734863, 9.100000381469727, 7.900000095367432, 4.900000095367432, 7.5, 6.900000095367432, 4.5,
|
||||
3.299999952316284, 5.0, 2.299999952316284, 9.899999618530273, 1.100000023841858, 9.0, 7.199999809265137,
|
||||
1.7999999523162842, 3.0, 4.599999904632568, 7.099999904632568, 0.5, 8.0, 7.599999904632568,
|
||||
9.699999809265137, 0.30000001192092896, 6.099999904632568, 4.099999904632568, 0.699999988079071,
|
||||
5.199999809265137, 5.199999809265137, 5.900000095367432, 2.0999999046325684, 6.300000190734863,
|
||||
8.600000381469727, 0.8999999761581421, 3.9000000953674316, 3.799999952316284, 3.799999952316284,
|
||||
6.300000190734863, 2.700000047683716, 6.599999904632568, 9.5, 0.0, 2.0, 0.4000000059604645,
|
||||
3.700000047683716, 2.700000047683716, 2.200000047683716, 3.700000047683716, 8.5, 9.899999618530273,
|
||||
8.399999618530273, 6.5, 9.5, 0.10000000149011612, 6.699999809265137, 6.599999904632568, 4.300000190734863,
|
||||
4.599999904632568, 3.5999999046325684, 4.400000095367432, 8.0, 5.5, 2.9000000953674316, 8.300000190734863,
|
||||
3.700000047683716, 7.099999904632568, 7.5, 8.300000190734863, 1.899999976158142, 7.800000190734863, 3.0,
|
||||
0.4000000059604645, 2.5, 7.199999809265137, 2.9000000953674316, 3.299999952316284, 8.399999618530273,
|
||||
3.799999952316284, 5.699999809265137, 3.0, 6.199999809265137, 0.699999988079071, 7.5, 3.0999999046325684,
|
||||
1.399999976158142, 1.600000023841858, 6.199999809265137, 9.800000190734863, 6.5, 7.0, 5.900000095367432,
|
||||
8.600000381469727, 1.600000023841858, 4.599999904632568, 4.0, 0.6000000238418579, 8.0, 9.0,
|
||||
3.799999952316284, 0.4000000059604645, 9.300000190734863, 7.099999904632568, 8.100000381469727,
|
||||
0.10000000149011612, 8.100000381469727, 4.599999904632568, 6.900000095367432, 0.10000000149011612,
|
||||
4.699999809265137, 0.10000000149011612, 8.899999618530273, 3.4000000953674316, 0.800000011920929,
|
||||
1.399999976158142, 6.5, 7.699999809265137, 2.700000047683716, 4.0, 7.800000190734863, 6.699999809265137,
|
||||
1.5, 5.400000095367432, 5.0, 7.800000190734863, 4.800000190734863, 5.199999809265137, 8.300000190734863,
|
||||
1.0, 9.899999618530273, 9.5, 0.5, 3.0999999046325684, 9.300000190734863, 8.600000381469727,
|
||||
7.599999904632568, 7.699999809265137, 9.800000190734863, 0.8999999761581421, 9.600000381469727,
|
||||
9.699999809265137, 2.799999952316284, 4.0, 4.699999809265137, 3.0999999046325684, 7.0, 1.100000023841858,
|
||||
0.8999999761581421, 8.300000190734863, 1.0, 6.300000190734863, 0.20000000298023224, 5.599999904632568,
|
||||
7.099999904632568, 3.5, 9.899999618530273, 7.5, 4.900000095367432, 1.7999999523162842
|
||||
],
|
||||
"dims": [2, 3, 3, 3, 3],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [9.699999809265137, 2.4000000953674316],
|
||||
"dims": [2],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [
|
||||
769.7499389648438, 1072.329833984375, 704.4599609375, 805.1400146484375, 1299.5399169921875,
|
||||
939.5000610351562, 524.260009765625, 753.0099487304688, 524.1699829101562, 1181.39990234375,
|
||||
1647.14990234375, 1139.5899658203125, 1325.56982421875, 2184.85986328125, 1523.3699951171875,
|
||||
857.0199584960938, 1273.72998046875, 911.9600219726562, 733.8999633789062, 1060.2799072265625,
|
||||
678.4299926757812, 1001.8198852539062, 1517.159912109375, 961.1799926757812, 658.3500366210938,
|
||||
1098.43994140625, 683.5499877929688, 622.530029296875, 1064.630126953125, 759.1500244140625,
|
||||
958.6400756835938, 1466.6199951171875, 1096.9700927734375, 689.260009765625, 1000.1900024414062,
|
||||
654.489990234375, 777.5901489257812, 1269.4998779296875, 1003.8999633789062, 1433.219970703125, 1880.25,
|
||||
1488.080078125, 1090.3900146484375, 1417.3499755859375, 952.8499755859375, 591.81005859375,
|
||||
1007.2999267578125, 536.7200317382812, 969.969970703125, 1501.6400146484375, 1038.1500244140625,
|
||||
716.570068359375, 1121.3199462890625, 762.1400146484375
|
||||
],
|
||||
"dims": [1, 2, 3, 3, 3],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "conv3d with bias, x=[1, 2, 4, 4, 4], f=[3, 2, 1, 1, 1], s=1, d=1, auto_pad=NOTSET, pads=[2, 2, 2, 2, 2, 2]",
|
||||
"operator": "Conv",
|
||||
"attributes": [
|
||||
{ "name": "kernel_shape", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "auto_pad", "data": "NOTSET", "type": "string" },
|
||||
{ "name": "strides", "data": [1, 1, 1], "type": "ints" },
|
||||
{ "name": "pads", "data": [2, 2, 2, 2, 2, 2], "type": "ints" },
|
||||
{ "name": "dilations", "data": [1, 1, 1], "type": "ints" }
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"name": "T[0]",
|
||||
"inputs": [
|
||||
{
|
||||
"data": [
|
||||
6.0, 0.20000000298023224, 3.0, 5.800000190734863, 1.7999999523162842, 5.699999809265137,
|
||||
4.699999809265137, 1.2000000476837158, 6.099999904632568, 1.600000023841858, 1.7000000476837158,
|
||||
3.5999999046325684, 0.800000011920929, 4.599999904632568, 5.300000190734863, 3.5999999046325684,
|
||||
4.800000190734863, 2.0999999046325684, 7.199999809265137, 4.5, 0.20000000298023224, 1.2999999523162842,
|
||||
1.5, 4.199999809265137, 5.699999809265137, 6.800000190734863, 3.0, 9.5, 9.199999809265137,
|
||||
6.099999904632568, 0.30000001192092896, 3.0999999046325684, 1.899999976158142, 8.300000190734863, 0.5,
|
||||
1.100000023841858, 2.9000000953674316, 0.5, 8.699999809265137, 7.099999904632568, 5.699999809265137, 2.0,
|
||||
8.899999618530273, 0.8999999761581421, 5.699999809265137, 8.100000381469727, 8.300000190734863, 3.5, 0.0,
|
||||
9.899999618530273, 2.200000047683716, 9.5, 6.0, 1.7000000476837158, 7.800000190734863, 2.0999999046325684,
|
||||
4.800000190734863, 5.699999809265137, 8.100000381469727, 1.5, 5.699999809265137, 8.0, 3.0, 6.5, 2.0,
|
||||
7.599999904632568, 6.300000190734863, 2.9000000953674316, 8.100000381469727, 3.0, 8.800000190734863,
|
||||
7.300000190734863, 7.300000190734863, 0.30000001192092896, 0.800000011920929, 7.199999809265137,
|
||||
6.300000190734863, 8.5, 5.900000095367432, 3.5999999046325684, 2.700000047683716, 9.899999618530273,
|
||||
9.800000190734863, 1.399999976158142, 0.20000000298023224, 0.699999988079071, 3.9000000953674316,
|
||||
1.100000023841858, 9.899999618530273, 4.5, 8.300000190734863, 6.400000095367432, 9.199999809265137,
|
||||
6.800000190734863, 6.5, 0.0, 2.299999952316284, 7.199999809265137, 6.900000095367432, 8.899999618530273,
|
||||
1.899999976158142, 2.0999999046325684, 8.100000381469727, 8.5, 6.199999809265137, 3.0, 5.099999904632568,
|
||||
8.300000190734863, 10.0, 9.899999618530273, 2.200000047683716, 5.599999904632568, 8.699999809265137, 7.5,
|
||||
8.800000190734863, 0.6000000238418579, 4.400000095367432, 0.8999999761581421, 1.100000023841858,
|
||||
5.099999904632568, 1.2999999523162842, 6.0, 7.0, 0.30000001192092896, 5.5, 5.199999809265137,
|
||||
4.400000095367432, 6.099999904632568
|
||||
],
|
||||
"dims": [1, 2, 4, 4, 4],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [1.100000023841858, 7.699999809265137, 1.0, 0.5, 4.5, 0.20000000298023224],
|
||||
"dims": [3, 2, 1, 1, 1],
|
||||
"type": "float32"
|
||||
},
|
||||
{
|
||||
"data": [2.4000000953674316, 3.0, 4.0],
|
||||
"dims": [3],
|
||||
"type": "float32"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"data": [
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 24.399999618530273, 61.13999938964844, 54.21000289916992, 31.110000610351562,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 66.75, 31.76999855041504,
|
||||
75.33000183105469, 59.93000030517578, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 65.31999969482422, 6.470000267028809, 10.430000305175781, 61.79999923706055,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 51.790000915527344,
|
||||
72.90999603271484, 53.65999984741211, 34.07999801635742, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 28.469999313354492,
|
||||
80.93999481201172, 85.77999877929688, 18.1299991607666, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 4.159999847412109, 9.219999313354492, 34.08000183105469,
|
||||
15.489999771118164, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
84.89999389648438, 44.53000259399414, 69.61000061035156, 62.130001068115234, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 83.36000061035156, 61.470001220703125,
|
||||
52.779998779296875, 5.810000419616699, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 22.19999885559082, 66.97000122070312,
|
||||
56.08000183105469, 72.13999938964844, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 20.219999313354492, 19.119998931884766, 74.34000396728516, 75.65999603271484,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 56.40999984741211,
|
||||
27.69999885559082, 51.459999084472656, 67.30000305175781, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 85.66999816894531, 87.54000091552734, 28.469999313354492,
|
||||
49.369998931884766, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 69.38999938964844, 71.04000091552734, 72.58000183105469,
|
||||
17.469999313354492, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
42.880001068115234, 11.200000762939453, 19.44999885559082, 43.97999954223633, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 17.690000534057617, 54.869998931884766,
|
||||
65.20999908447266, 6.360000133514404, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 51.02000045776367, 51.23999786376953, 39.58000183105469, 56.52000045776367,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316, 2.4000000953674316,
|
||||
2.4000000953674316, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 10.0, 7.0, 9.149999618530273, 10.25, 3.0, 3.0, 3.0, 3.0, 8.850000381469727,
|
||||
10.199999809265137, 12.100000381469727, 7.850000381469727, 3.0, 3.0, 3.0, 3.0, 12.75, 4.75,
|
||||
5.100000381469727, 10.199999809265137, 3.0, 3.0, 3.0, 3.0, 6.949999809265137, 11.850000381469727, 11.25,
|
||||
8.399999618530273, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
9.149999618530273, 10.049999237060547, 15.100000381469727, 8.199999809265137, 3.0, 3.0, 3.0, 3.0,
|
||||
3.299999952316284, 4.650000095367432, 6.449999809265137, 7.75, 3.0, 3.0, 3.0, 3.0, 13.649999618530273,
|
||||
12.050000190734863, 10.149999618530273, 15.699999809265137, 3.0, 3.0, 3.0, 3.0, 16.799999237060547, 12.5,
|
||||
6.550000190734863, 6.099999904632568, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 6.050000190734863, 14.899999618530273, 6.949999809265137, 8.549999237060547, 3.0, 3.0, 3.0, 3.0,
|
||||
6.850000381469727, 4.550000190734863, 15.75, 14.350000381469727, 3.0, 3.0, 3.0, 3.0, 11.799999237060547,
|
||||
6.5, 14.449999809265137, 8.050000190734863, 3.0, 3.0, 3.0, 3.0, 13.699999809265137, 16.049999237060547,
|
||||
12.40000057220459, 9.300000190734863, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 7.349999904632568, 16.649999618530273, 9.600000381469727, 12.800000190734863, 3.0, 3.0, 3.0,
|
||||
3.0, 11.199999809265137, 5.150000095367432, 11.350000381469727, 7.649999618530273, 3.0, 3.0, 3.0, 3.0,
|
||||
8.450000762939453, 11.699999809265137, 14.600000381469727, 4.650000095367432, 3.0, 3.0, 3.0, 3.0,
|
||||
11.449999809265137, 13.600000381469727, 8.199999809265137, 12.550000190734863, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
|
||||
3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 31.399999618530273,
|
||||
6.420000076293945, 18.760000228881836, 30.68000030517578, 4.0, 4.0, 4.0, 4.0, 13.719999313354492, 30.25,
|
||||
26.90999984741211, 10.860000610351562, 4.0, 4.0, 4.0, 4.0, 32.90999984741211, 11.260000228881836,
|
||||
11.809999465942383, 21.639999389648438, 4.0, 4.0, 4.0, 4.0, 8.860000610351562, 26.399999618530273,
|
||||
29.030000686645508, 20.919998168945312, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 26.14000129699707, 15.429999351501465, 38.3599967956543, 24.530000686645508, 4.0, 4.0, 4.0, 4.0,
|
||||
4.940000057220459, 9.989999771118164, 11.530000686645508, 23.119998931884766, 4.0, 4.0, 4.0, 4.0,
|
||||
31.6299991607666, 35.5, 19.15999984741211, 48.029998779296875, 4.0, 4.0, 4.0, 4.0, 47.23999786376953,
|
||||
32.80999755859375, 6.650000095367432, 17.950000762939453, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 13.010000228881836, 42.790000915527344, 7.630000114440918,
|
||||
10.729999542236328, 4.0, 4.0, 4.0, 4.0, 17.43000030517578, 6.670000076293945, 44.769996643066406,
|
||||
37.64999771118164, 4.0, 4.0, 4.0, 4.0, 30.889999389648438, 13.600000381469727, 45.06999969482422,
|
||||
9.709999084472656, 4.0, 4.0, 4.0, 4.0, 31.649999618530273, 42.43000030517578, 41.790000915527344,
|
||||
20.8700008392334, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
5.739999771118164, 50.04999923706055, 15.660000801086426, 46.869998931884766, 4.0, 4.0, 4.0, 4.0,
|
||||
31.8799991607666, 11.829999923706055, 39.320003509521484, 14.470000267028809, 4.0, 4.0, 4.0, 4.0,
|
||||
25.860000610351562, 30.850000381469727, 41.85000228881836, 10.809999465942383, 4.0, 4.0, 4.0, 4.0, 30.75,
|
||||
41.040000915527344, 18.380001068115234, 34.470001220703125, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
|
||||
4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0
|
||||
],
|
||||
"dims": [1, 3, 8, 8, 8],
|
||||
"type": "float32"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -1347,6 +1347,7 @@
|
|||
"concat_zero-sized.jsonc",
|
||||
"cast.jsonc",
|
||||
"conv.jsonc",
|
||||
"conv3dncdhw.jsonc",
|
||||
"cos.jsonc",
|
||||
"div.jsonc",
|
||||
"div_int32.jsonc",
|
||||
|
|
|
|||
Loading…
Reference in a new issue