forked from mindspore-Ecosystem/mindspore
!22585 Add grad implementation of AdaptiveAvgPool2D
Merge pull request !22585 from zuochuanyong/adaptive_avgpool2d_grad
This commit is contained in:
commit
5e6287bec1
|
@ -0,0 +1,181 @@
|
||||||
|
/**
|
||||||
|
* Copyright 2021 Huawei Technologies Co., Ltd
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "backend/kernel_compiler/gpu/cuda_impl/adaptive_avg_pool2d_grad_impl.cuh"
|
||||||
|
|
||||||
|
__device__ inline uint start_index(uint a, uint b, uint c) {
|
||||||
|
return floorf(__uint2float_rn(a * c) / __uint2float_rn(b));
|
||||||
|
}
|
||||||
|
|
||||||
|
__device__ inline uint end_index(uint a, uint b, uint c) {
|
||||||
|
return ceilf(__uint2float_rn((a + 1) * c) / __uint2float_rn(b));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
__global__ void AdaptiveAvgPool2DGradKernel(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, T *input_data,
|
||||||
|
T *output_data) {
|
||||||
|
for (uint c = blockIdx.x * blockDim.x + threadIdx.x; c < size; c += gridDim.x * blockDim.x) {
|
||||||
|
T *input_ptr = input_data + c * input_height * input_width;
|
||||||
|
T *output_ptr = output_data + c * output_height * output_width;
|
||||||
|
|
||||||
|
size_t output_size = output_height * output_width;
|
||||||
|
for (size_t i = 0; i < output_size; i++) {
|
||||||
|
output_ptr[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint ih = 0; ih < input_height; ih++) {
|
||||||
|
uint oh0 = start_index(ih, input_height, output_height);
|
||||||
|
uint oh1 = end_index(ih, input_height, output_height);
|
||||||
|
uint kh = oh1 - oh0;
|
||||||
|
|
||||||
|
for (uint iw = 0; iw < input_width; iw++) {
|
||||||
|
uint ow0 = start_index(iw, input_width, output_width);
|
||||||
|
uint ow1 = end_index(iw, input_width, output_width);
|
||||||
|
uint kw = ow1 - ow0;
|
||||||
|
|
||||||
|
T delta = input_ptr[ih * input_width + iw] / (kh * kw);
|
||||||
|
for (uint oh = oh0; oh < oh1; oh++) {
|
||||||
|
for (uint ow = ow0; ow < ow1; ow++) {
|
||||||
|
output_ptr[oh * output_width + ow] += delta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
__global__ void AdaptiveAvgPool2DGradKernel(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, float *input_data,
|
||||||
|
float *output_data) {
|
||||||
|
for (uint c = blockIdx.x * blockDim.x + threadIdx.x; c < size; c += gridDim.x * blockDim.x) {
|
||||||
|
float *input_ptr = input_data + c * input_height * input_width;
|
||||||
|
float *output_ptr = output_data + c * output_height * output_width;
|
||||||
|
|
||||||
|
size_t output_size = output_height * output_width;
|
||||||
|
for (size_t i = 0; i < output_size; i++) {
|
||||||
|
output_ptr[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint ih = 0; ih < input_height; ih++) {
|
||||||
|
uint oh0 = start_index(ih, input_height, output_height);
|
||||||
|
uint oh1 = end_index(ih, input_height, output_height);
|
||||||
|
uint kh = oh1 - oh0;
|
||||||
|
|
||||||
|
for (uint iw = 0; iw < input_width; iw++) {
|
||||||
|
uint ow0 = start_index(iw, input_width, output_width);
|
||||||
|
uint ow1 = end_index(iw, input_width, output_width);
|
||||||
|
uint kw = ow1 - ow0;
|
||||||
|
|
||||||
|
float delta = input_ptr[ih * input_width + iw] / __uint2float_rn(kh * kw);
|
||||||
|
for (uint oh = oh0; oh < oh1; oh++) {
|
||||||
|
for (uint ow = ow0; ow < ow1; ow++) {
|
||||||
|
output_ptr[oh * output_width + ow] += delta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
__global__ void AdaptiveAvgPool2DGradKernel(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, half *input_data,
|
||||||
|
half *output_data) {
|
||||||
|
for (uint c = blockIdx.x * blockDim.x + threadIdx.x; c < size; c += gridDim.x * blockDim.x) {
|
||||||
|
half *input_ptr = input_data + c * input_height * input_width;
|
||||||
|
half *output_ptr = output_data + c * output_height * output_width;
|
||||||
|
|
||||||
|
size_t output_size = output_height * output_width;
|
||||||
|
for (size_t i = 0; i < output_size; i++) {
|
||||||
|
output_ptr[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint ih = 0; ih < input_height; ih++) {
|
||||||
|
uint oh0 = start_index(ih, input_height, output_height);
|
||||||
|
uint oh1 = end_index(ih, input_height, output_height);
|
||||||
|
uint kh = oh1 - oh0;
|
||||||
|
|
||||||
|
for (uint iw = 0; iw < input_width; iw++) {
|
||||||
|
uint ow0 = start_index(iw, input_width, output_width);
|
||||||
|
uint ow1 = end_index(iw, input_width, output_width);
|
||||||
|
uint kw = ow1 - ow0;
|
||||||
|
|
||||||
|
half delta = input_ptr[ih * input_width + iw] / __uint2half_rn(kh * kw);
|
||||||
|
for (uint oh = oh0; oh < oh1; oh++) {
|
||||||
|
for (uint ow = ow0; ow < ow1; ow++) {
|
||||||
|
output_ptr[oh * output_width + ow] += delta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
__global__ void AdaptiveAvgPool2DGradKernel(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, double *input_data,
|
||||||
|
double *output_data) {
|
||||||
|
for (uint c = blockIdx.x * blockDim.x + threadIdx.x; c < size; c += gridDim.x * blockDim.x) {
|
||||||
|
double *input_ptr = input_data + c * input_height * input_width;
|
||||||
|
double *output_ptr = output_data + c * output_height * output_width;
|
||||||
|
|
||||||
|
size_t output_size = output_height * output_width;
|
||||||
|
for (size_t i = 0; i < output_size; i++) {
|
||||||
|
output_ptr[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint ih = 0; ih < input_height; ih++) {
|
||||||
|
uint oh0 = start_index(ih, input_height, output_height);
|
||||||
|
uint oh1 = end_index(ih, input_height, output_height);
|
||||||
|
uint kh = oh1 - oh0;
|
||||||
|
|
||||||
|
for (uint iw = 0; iw < input_width; iw++) {
|
||||||
|
uint ow0 = start_index(iw, input_width, output_width);
|
||||||
|
uint ow1 = end_index(iw, input_width, output_width);
|
||||||
|
uint kw = ow1 - ow0;
|
||||||
|
|
||||||
|
double delta = input_ptr[ih * input_width + iw] / __uint2double_rn(kh * kw);
|
||||||
|
for (uint oh = oh0; oh < oh1; oh++) {
|
||||||
|
for (uint ow = ow0; ow < ow1; ow++) {
|
||||||
|
output_ptr[oh * output_width + ow] += delta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void ApplyAdaptiveAvgPool2DGrad(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, T *input_data,
|
||||||
|
T *output_data, cudaStream_t cuda_stream) {
|
||||||
|
AdaptiveAvgPool2DGradKernel<<<GET_BLOCKS(size), GET_THREADS, 0, cuda_stream>>>(
|
||||||
|
size, input_height, input_width, output_height, output_width, input_data, output_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
template void ApplyAdaptiveAvgPool2DGrad<float>(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, float *input_data,
|
||||||
|
float *output_data, cudaStream_t cuda_stream);
|
||||||
|
|
||||||
|
template void ApplyAdaptiveAvgPool2DGrad<half>(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, half *input_data,
|
||||||
|
half *output_data, cudaStream_t cuda_stream);
|
||||||
|
|
||||||
|
template void ApplyAdaptiveAvgPool2DGrad<double>(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, double *input_data,
|
||||||
|
double *output_data, cudaStream_t cuda_stream);
|
|
@ -0,0 +1,26 @@
|
||||||
|
/**
|
||||||
|
* Copyright 2021 Huawei Technologies Co., Ltd
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MINDSPORE_CCSRC_KERNEL_GPU_CUDA_IMP_ADAPTIVE_AVGPOOL2D_GRAD_IMPL_H_
|
||||||
|
#define MINDSPORE_CCSRC_KERNEL_GPU_CUDA_IMP_ADAPTIVE_AVGPOOL2D_GRAD_IMPL_H_
|
||||||
|
|
||||||
|
#include "runtime/device/gpu/cuda_common.h"
|
||||||
|
template <typename T>
|
||||||
|
void ApplyAdaptiveAvgPool2DGrad(const uint size, const uint input_height, const uint input_width,
|
||||||
|
const uint output_height, const uint output_width, T *input_data,
|
||||||
|
T *output_data, cudaStream_t cuda_stream);
|
||||||
|
|
||||||
|
#endif // MINDSPORE_CCSRC_KERNEL_GPU_CUDA_IMP_ADAPTIVE_AVGPOOL2D_GRAD_IMPL_H_
|
|
@ -0,0 +1,34 @@
|
||||||
|
/**
|
||||||
|
* Copyright 2021 Huawei Technologies Co., Ltd
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "backend/kernel_compiler/gpu/nn/adaptive_avg_pool2d_grad_gpu_kernel.h"
|
||||||
|
|
||||||
|
namespace mindspore {
|
||||||
|
namespace kernel {
|
||||||
|
MS_REG_GPU_KERNEL_ONE(
|
||||||
|
AdaptiveAvgPool2DGrad,
|
||||||
|
KernelAttr().AddInputAttr(kNumberTypeFloat16).AddInputAttr(kNumberTypeFloat16).AddOutputAttr(kNumberTypeFloat16),
|
||||||
|
AdaptiveAvgPool2DGradKernel, half)
|
||||||
|
MS_REG_GPU_KERNEL_ONE(
|
||||||
|
AdaptiveAvgPool2DGrad,
|
||||||
|
KernelAttr().AddInputAttr(kNumberTypeFloat32).AddInputAttr(kNumberTypeFloat32).AddOutputAttr(kNumberTypeFloat32),
|
||||||
|
AdaptiveAvgPool2DGradKernel, float)
|
||||||
|
MS_REG_GPU_KERNEL_ONE(
|
||||||
|
AdaptiveAvgPool2DGrad,
|
||||||
|
KernelAttr().AddInputAttr(kNumberTypeFloat64).AddInputAttr(kNumberTypeFloat64).AddOutputAttr(kNumberTypeFloat64),
|
||||||
|
AdaptiveAvgPool2DGradKernel, double)
|
||||||
|
} // namespace kernel
|
||||||
|
} // namespace mindspore
|
|
@ -0,0 +1,120 @@
|
||||||
|
/**
|
||||||
|
* Copyright 2021 Huawei Technologies Co., Ltd
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MINDSPORE_CCSRC_BACKEND_KERNEL_COMPILER_GPU_NN_ADAPTIVEAVGPOOL2D_GPU_KERNEL_H_
|
||||||
|
#define MINDSPORE_CCSRC_BACKEND_KERNEL_COMPILER_GPU_NN_ADAPTIVEAVGPOOL2D_GPU_KERNEL_H_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <algorithm>
|
||||||
|
#include "backend/kernel_compiler/gpu/gpu_kernel.h"
|
||||||
|
#include "backend/kernel_compiler/gpu/gpu_kernel_factory.h"
|
||||||
|
#include "backend/kernel_compiler/gpu/cuda_impl/adaptive_avg_pool2d_grad_impl.cuh"
|
||||||
|
|
||||||
|
namespace mindspore {
|
||||||
|
namespace kernel {
|
||||||
|
constexpr size_t kAdaptiveAvgPool2dGradInputNum = 2;
|
||||||
|
constexpr size_t kAdaptiveAvgPool2dGradMinRank = 2;
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
class AdaptiveAvgPool2DGradKernel : public GpuKernel {
|
||||||
|
public:
|
||||||
|
AdaptiveAvgPool2DGradKernel()
|
||||||
|
: input_size_(0),
|
||||||
|
output_size_(0),
|
||||||
|
input_height_(0),
|
||||||
|
input_width_(0),
|
||||||
|
output_height_(0),
|
||||||
|
output_width_(0),
|
||||||
|
size_(0) {}
|
||||||
|
~AdaptiveAvgPool2DGradKernel() override = default;
|
||||||
|
|
||||||
|
const std::vector<size_t> &GetInputSizeList() const override { return input_size_list_; }
|
||||||
|
const std::vector<size_t> &GetOutputSizeList() const override { return output_size_list_; }
|
||||||
|
const std::vector<size_t> &GetWorkspaceSizeList() const override { return workspace_size_list_; }
|
||||||
|
|
||||||
|
bool Launch(const std::vector<AddressPtr> &inputs, const std::vector<AddressPtr> &,
|
||||||
|
const std::vector<AddressPtr> &outputs, void *stream_ptr) override {
|
||||||
|
T *dy_addr = GetDeviceAddress<T>(inputs, 1);
|
||||||
|
T *dx_addr = GetDeviceAddress<T>(outputs, 0);
|
||||||
|
|
||||||
|
ApplyAdaptiveAvgPool2DGrad(size_, input_height_, input_width_, output_height_, output_width_, dy_addr, dx_addr,
|
||||||
|
reinterpret_cast<cudaStream_t>(stream_ptr));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Init(const CNodePtr &kernel_node) override {
|
||||||
|
size_t input_num = AnfAlgo::GetInputTensorNum(kernel_node);
|
||||||
|
if (input_num != kAdaptiveAvgPool2dGradInputNum) {
|
||||||
|
MS_LOG(ERROR) << "Input number is " << input_num << ", but AdaptiveAvgPool2DGrad needs "
|
||||||
|
<< kAdaptiveAvgPool2dGradInputNum << " inputs.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
input_size_ = sizeof(T);
|
||||||
|
output_size_ = sizeof(T);
|
||||||
|
|
||||||
|
auto input_shape = AnfAlgo::GetPrevNodeOutputInferShape(kernel_node, 1); // dy
|
||||||
|
auto output_shape = AnfAlgo::GetOutputInferShape(kernel_node, 0); // dx
|
||||||
|
|
||||||
|
auto input_rank = input_shape.size();
|
||||||
|
auto output_rank = output_shape.size();
|
||||||
|
if (input_rank < kAdaptiveAvgPool2dGradMinRank || output_rank < kAdaptiveAvgPool2dGradMinRank) {
|
||||||
|
MS_LOG(ERROR) << "The input or output should have rank at least 2.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
input_height_ = static_cast<uint>(input_shape[input_rank - 2]);
|
||||||
|
input_width_ = static_cast<uint>(input_shape[input_rank - 1]);
|
||||||
|
size_ = static_cast<uint>(input_rank == (kAdaptiveAvgPool2dGradMinRank + 1) ? input_shape[0]
|
||||||
|
: input_shape[0] * input_shape[1]);
|
||||||
|
for (uint i = 0; i < input_rank; i++) {
|
||||||
|
input_size_ *= input_shape[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
output_height_ = static_cast<uint>(output_shape[output_rank - 2]);
|
||||||
|
output_width_ = static_cast<uint>(output_shape[output_rank - 1]);
|
||||||
|
for (size_t i = 0; i < output_shape.size(); i++) {
|
||||||
|
output_size_ *= output_shape[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
InitSizeLists();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void InitSizeLists() override {
|
||||||
|
input_size_list_.push_back(input_size_);
|
||||||
|
output_size_list_.push_back(output_size_);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
size_t input_size_;
|
||||||
|
size_t output_size_;
|
||||||
|
uint input_height_;
|
||||||
|
uint input_width_;
|
||||||
|
uint output_height_;
|
||||||
|
uint output_width_;
|
||||||
|
uint size_;
|
||||||
|
|
||||||
|
std::vector<size_t> input_size_list_;
|
||||||
|
std::vector<size_t> output_size_list_;
|
||||||
|
std::vector<size_t> workspace_size_list_;
|
||||||
|
};
|
||||||
|
} // namespace kernel
|
||||||
|
} // namespace mindspore
|
||||||
|
|
||||||
|
#endif // MINDSPORE_CCSRC_BACKEND_KERNEL_COMPILER_GPU_NN_ADAPTIVEAVGPOOL2D_GPU_KERNEL_H_
|
|
@ -318,6 +318,17 @@ def get_bprop_avg_pool_grad(self):
|
||||||
return bprop
|
return bprop
|
||||||
|
|
||||||
|
|
||||||
|
@bprop_getters.register(P.AdaptiveAvgPool2D)
|
||||||
|
def get_bprop_adaptive_avg_pool2d_grad(self):
|
||||||
|
"""Grad definition for `AdaptiveAvgPool2D` operation."""
|
||||||
|
adaptive_avgpool_grad = G.AdaptiveAvgPool2DGrad()
|
||||||
|
|
||||||
|
def bprop(x, out, dout):
|
||||||
|
dx = adaptive_avgpool_grad(x, dout)
|
||||||
|
return (dx,)
|
||||||
|
|
||||||
|
return bprop
|
||||||
|
|
||||||
@bprop_getters.register(P.AvgPool3D)
|
@bprop_getters.register(P.AvgPool3D)
|
||||||
def get_bprop_avg_pool_3d_grad(self):
|
def get_bprop_avg_pool_3d_grad(self):
|
||||||
"""Grad definition for `AvgPool3D` operation."""
|
"""Grad definition for `AvgPool3D` operation."""
|
||||||
|
|
|
@ -16,4 +16,4 @@ bprop.32:x*
|
||||||
bprop.32:y*
|
bprop.32:y*
|
||||||
bprop.32:out*
|
bprop.32:out*
|
||||||
bprop.32:dout2
|
bprop.32:dout2
|
||||||
bprop.32:[CNode]35:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.32:[CNode]35:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.13:x*
|
bprop.13:x*
|
||||||
bprop.13:out*
|
bprop.13:out*
|
||||||
bprop.13:dout2
|
bprop.13:dout2
|
||||||
bprop.13:[CNode]15:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.13:[CNode]15:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.16:x*
|
bprop.16:x*
|
||||||
bprop.16:out*
|
bprop.16:out*
|
||||||
bprop.16:dout2
|
bprop.16:dout2
|
||||||
bprop.16:[CNode]18:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.16:[CNode]18:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.21:x*
|
||||||
bprop.21:y*
|
bprop.21:y*
|
||||||
bprop.21:out*
|
bprop.21:out*
|
||||||
bprop.21:dout2
|
bprop.21:dout2
|
||||||
bprop.21:[CNode]24:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.21:[CNode]24:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.25:x*
|
||||||
bprop.25:y*
|
bprop.25:y*
|
||||||
bprop.25:out*
|
bprop.25:out*
|
||||||
bprop.25:dout2
|
bprop.25:dout2
|
||||||
bprop.25:[CNode]28:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.25:[CNode]28:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -12,4 +12,4 @@ bprop.60:x*
|
||||||
bprop.60:y*
|
bprop.60:y*
|
||||||
bprop.60:out*
|
bprop.60:out*
|
||||||
bprop.60:dout2
|
bprop.60:dout2
|
||||||
bprop.60:[CNode]62:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.60:[CNode]62:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.67:x*
|
bprop.67:x*
|
||||||
bprop.67:out*
|
bprop.67:out*
|
||||||
bprop.67:dout2
|
bprop.67:dout2
|
||||||
bprop.67:[CNode]69:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.67:[CNode]69:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -6,4 +6,4 @@ l
|
||||||
bprop.19:x*
|
bprop.19:x*
|
||||||
bprop.19:out*
|
bprop.19:out*
|
||||||
bprop.19:dout2
|
bprop.19:dout2
|
||||||
bprop.19:[CNode]20:1:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.19:[CNode]20:1:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -17,4 +17,4 @@
|
||||||
bprop.110:keep_prob*
|
bprop.110:keep_prob*
|
||||||
bprop.110:out*
|
bprop.110:out*
|
||||||
bprop.110:dout2
|
bprop.110:dout2
|
||||||
bprop.110:[CNode]114:4:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.110:[CNode]114:4:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -12,4 +12,4 @@
|
||||||
bprop.50:keep_prob*
|
bprop.50:keep_prob*
|
||||||
bprop.50:out*
|
bprop.50:out*
|
||||||
bprop.50:dout2
|
bprop.50:dout2
|
||||||
bprop.50:[CNode]53:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.50:[CNode]53:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.70:x*
|
||||||
bprop.70:y*
|
bprop.70:y*
|
||||||
bprop.70:out*
|
bprop.70:out*
|
||||||
bprop.70:dout2
|
bprop.70:dout2
|
||||||
bprop.70:[CNode]73:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.70:[CNode]73:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.82:x*
|
||||||
bprop.82:y*
|
bprop.82:y*
|
||||||
bprop.82:out*
|
bprop.82:out*
|
||||||
bprop.82:dout2
|
bprop.82:dout2
|
||||||
bprop.82:[CNode]85:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.82:[CNode]85:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.78:x*
|
||||||
bprop.78:y*
|
bprop.78:y*
|
||||||
bprop.78:out*
|
bprop.78:out*
|
||||||
bprop.78:dout2
|
bprop.78:dout2
|
||||||
bprop.78:[CNode]81:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.78:[CNode]81:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.63:x*
|
||||||
bprop.63:y*
|
bprop.63:y*
|
||||||
bprop.63:out*
|
bprop.63:out*
|
||||||
bprop.63:dout2
|
bprop.63:dout2
|
||||||
bprop.63:[CNode]66:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.63:[CNode]66:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -5,4 +5,4 @@ f
|
||||||
bprop.2:x*
|
bprop.2:x*
|
||||||
bprop.2:out*
|
bprop.2:out*
|
||||||
bprop.2:dout2
|
bprop.2:dout2
|
||||||
bprop.2:[CNode]3:1:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.2:[CNode]3:1:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.29:x*
|
bprop.29:x*
|
||||||
bprop.29:out*
|
bprop.29:out*
|
||||||
bprop.29:dout2
|
bprop.29:dout2
|
||||||
bprop.29:[CNode]31:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.29:[CNode]31:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.90:x*
|
||||||
bprop.90:y*
|
bprop.90:y*
|
||||||
bprop.90:out*
|
bprop.90:out*
|
||||||
bprop.90:dout2
|
bprop.90:dout2
|
||||||
bprop.90:[CNode]93:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.90:[CNode]93:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.86:x*
|
||||||
bprop.86:y*
|
bprop.86:y*
|
||||||
bprop.86:out*
|
bprop.86:out*
|
||||||
bprop.86:dout2
|
bprop.86:dout2
|
||||||
bprop.86:[CNode]89:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.86:[CNode]89:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -15,4 +15,4 @@
|
||||||
bprop.45:num*
|
bprop.45:num*
|
||||||
bprop.45:out*
|
bprop.45:out*
|
||||||
bprop.45:dout2
|
bprop.45:dout2
|
||||||
bprop.45:[CNode]49:4:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.45:[CNode]49:4:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.94:x*
|
||||||
bprop.94:y*
|
bprop.94:y*
|
||||||
bprop.94:out*
|
bprop.94:out*
|
||||||
bprop.94:dout2
|
bprop.94:dout2
|
||||||
bprop.94:[CNode]97:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.94:[CNode]97:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.39:x*
|
bprop.39:x*
|
||||||
bprop.39:out*
|
bprop.39:out*
|
||||||
bprop.39:dout2
|
bprop.39:dout2
|
||||||
bprop.39:[CNode]41:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.39:[CNode]41:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.98:x*
|
||||||
bprop.98:y*
|
bprop.98:y*
|
||||||
bprop.98:out*
|
bprop.98:out*
|
||||||
bprop.98:dout2
|
bprop.98:dout2
|
||||||
bprop.98:[CNode]101:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.98:[CNode]101:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -16,4 +16,4 @@ bprop.74:x*
|
||||||
bprop.74:y*
|
bprop.74:y*
|
||||||
bprop.74:out*
|
bprop.74:out*
|
||||||
bprop.74:dout2
|
bprop.74:dout2
|
||||||
bprop.74:[CNode]77:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.74:[CNode]77:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -19,4 +19,4 @@
|
||||||
bprop.54:off_value*
|
bprop.54:off_value*
|
||||||
bprop.54:out*
|
bprop.54:out*
|
||||||
bprop.54:dout2
|
bprop.54:dout2
|
||||||
bprop.54:[CNode]59:5:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.54:[CNode]59:5:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -7,4 +7,4 @@ l
|
||||||
bprop.7:x*
|
bprop.7:x*
|
||||||
bprop.7:out*
|
bprop.7:out*
|
||||||
bprop.7:dout2
|
bprop.7:dout2
|
||||||
bprop.7:[CNode]9:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.7:[CNode]9:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -7,4 +7,4 @@ l
|
||||||
bprop.4:x*
|
bprop.4:x*
|
||||||
bprop.4:out*
|
bprop.4:out*
|
||||||
bprop.4:dout2
|
bprop.4:dout2
|
||||||
bprop.4:[CNode]6:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.4:[CNode]6:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -8,4 +8,4 @@ f
|
||||||
bprop.0:x*
|
bprop.0:x*
|
||||||
bprop.0:out*
|
bprop.0:out*
|
||||||
bprop.0:dout2
|
bprop.0:dout2
|
||||||
bprop.0:[CNode]1:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.0:[CNode]1:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -12,4 +12,4 @@
|
||||||
bprop.102:axis*
|
bprop.102:axis*
|
||||||
bprop.102:out*
|
bprop.102:out*
|
||||||
bprop.102:dout2
|
bprop.102:dout2
|
||||||
bprop.102:[CNode]105:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.102:[CNode]105:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -12,4 +12,4 @@
|
||||||
bprop.106:axis*
|
bprop.106:axis*
|
||||||
bprop.106:out*
|
bprop.106:out*
|
||||||
bprop.106:dout2
|
bprop.106:dout2
|
||||||
bprop.106:[CNode]109:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.106:[CNode]109:3:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.42:x*
|
bprop.42:x*
|
||||||
bprop.42:out*
|
bprop.42:out*
|
||||||
bprop.42:dout2
|
bprop.42:dout2
|
||||||
bprop.42:[CNode]44:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.42:[CNode]44:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ s
|
||||||
bprop.36:x*
|
bprop.36:x*
|
||||||
bprop.36:out*
|
bprop.36:out*
|
||||||
bprop.36:dout2
|
bprop.36:dout2
|
||||||
bprop.36:[CNode]38:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.36:[CNode]38:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -9,4 +9,4 @@ r
|
||||||
bprop.10:x*
|
bprop.10:x*
|
||||||
bprop.10:out*
|
bprop.10:out*
|
||||||
bprop.10:dout2
|
bprop.10:dout2
|
||||||
bprop.10:[CNode]12:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71be985a048b98205beb531a0e96f3c9c3c36cb9a5fef472e532f1e8041d85d279c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
bprop.10:[CNode]12:2:€087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f1bb10d35eb13b30786fa05cc950c1d1711dbc21a5dda0cf3c1670158c0627efe2366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b22470a581257d7d4d477704a012a34929cbbd312ac64848b9e2b80836454492b454c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260ffb378d62977d2a1338d9b64be24b7349347c19c65faf6ba72837f4df97ff84c
|
|
@ -843,6 +843,20 @@ class AvgPoolGrad(_PoolGrad):
|
||||||
return x1_dtype
|
return x1_dtype
|
||||||
|
|
||||||
|
|
||||||
|
class AdaptiveAvgPool2DGrad(PrimitiveWithInfer):
|
||||||
|
"""Gradients of the adaptive avg pool 2D operation."""
|
||||||
|
|
||||||
|
@prim_attr_register
|
||||||
|
def __init__(self):
|
||||||
|
"""Initialize AdaptiveAvgPool2DGrad"""
|
||||||
|
|
||||||
|
def infer_shape(self, x1_shape, grad_shape):
|
||||||
|
return x1_shape
|
||||||
|
|
||||||
|
def infer_dtype(self, x1_dtype, grad_dtype):
|
||||||
|
return x1_dtype
|
||||||
|
|
||||||
|
|
||||||
class AvgPool3DGrad(Primitive):
|
class AvgPool3DGrad(Primitive):
|
||||||
"""Gradients of the avg pool3d operation."""
|
"""Gradients of the avg pool3d operation."""
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import mindspore.context as context
|
||||||
import mindspore.nn as nn
|
import mindspore.nn as nn
|
||||||
from mindspore import Tensor, ops
|
from mindspore import Tensor, ops
|
||||||
from mindspore.ops import operations as P
|
from mindspore.ops import operations as P
|
||||||
|
from mindspore.ops.operations import _grad_ops as G
|
||||||
from mindspore.common.api import ms_function
|
from mindspore.common.api import ms_function
|
||||||
|
|
||||||
context.set_context(mode=context.PYNATIVE_MODE, device_target='GPU')
|
context.set_context(mode=context.PYNATIVE_MODE, device_target='GPU')
|
||||||
|
@ -36,6 +37,16 @@ class Net(nn.Cell):
|
||||||
return self.adaptive_avg_pool2d(x)
|
return self.adaptive_avg_pool2d(x)
|
||||||
|
|
||||||
|
|
||||||
|
class GradNet(nn.Cell):
|
||||||
|
def __init__(self):
|
||||||
|
super(GradNet, self).__init__()
|
||||||
|
self.adaptive_avg_pool2d_grad = G.AdaptiveAvgPool2DGrad()
|
||||||
|
|
||||||
|
@ms_function
|
||||||
|
def construct(self, x, dy):
|
||||||
|
return self.adaptive_avg_pool2d_grad(x, dy)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.level0
|
@pytest.mark.level0
|
||||||
@pytest.mark.platform_x86_gpu_training
|
@pytest.mark.platform_x86_gpu_training
|
||||||
@pytest.mark.env_onecard
|
@pytest.mark.env_onecard
|
||||||
|
@ -85,20 +96,80 @@ def test_net_value():
|
||||||
assert output.asnumpy().shape == expect_shape
|
assert output.asnumpy().shape == expect_shape
|
||||||
assert (output.asnumpy() == expect_output).all
|
assert (output.asnumpy() == expect_output).all
|
||||||
|
|
||||||
|
expect_dx = np.array([[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]],
|
||||||
|
[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]],
|
||||||
|
[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]]])
|
||||||
|
grad_net = GradNet()
|
||||||
|
dx = grad_net(Tensor(x), output)
|
||||||
|
assert dx.asnumpy().shape == x.shape
|
||||||
|
assert (dx.asnumpy() == expect_dx).all
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.level0
|
@pytest.mark.level0
|
||||||
@pytest.mark.platform_x86_gpu_training
|
@pytest.mark.platform_x86_gpu_training
|
||||||
@pytest.mark.env_onecard
|
@pytest.mark.env_onecard
|
||||||
def test_net_pynative():
|
def test_net_graph_mode():
|
||||||
context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
|
context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
|
||||||
x = np.array([[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
|
x = np.array([[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
|
||||||
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
|
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
|
||||||
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]])
|
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]])
|
||||||
adaptive_avg_pool_2d = ops.AdaptiveAvgPool2D((2, 2))
|
adaptive_avg_pool_2d = ops.AdaptiveAvgPool2D((2, 2))
|
||||||
output = adaptive_avg_pool_2d(Tensor(x))
|
output = adaptive_avg_pool_2d(Tensor(x, mindspore.float16))
|
||||||
expect_shape = (3, 2, 2)
|
expect_shape = (3, 2, 2)
|
||||||
expect_output = np.array([[[3.0, 4.0], [6.0, 7.0]],
|
expect_output = np.array([[[3.0, 4.0], [6.0, 7.0]],
|
||||||
[[3.0, 4.0], [6.0, 7.0]],
|
[[3.0, 4.0], [6.0, 7.0]],
|
||||||
[[3.0, 4.0], [6.0, 7.0]]])
|
[[3.0, 4.0], [6.0, 7.0]]])
|
||||||
assert output.asnumpy().shape == expect_shape
|
assert output.asnumpy().shape == expect_shape
|
||||||
assert (output.asnumpy() == expect_output).all
|
assert (output.asnumpy() == expect_output).all
|
||||||
|
|
||||||
|
expect_dx = np.array([[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]],
|
||||||
|
[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]],
|
||||||
|
[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]]])
|
||||||
|
grad_net = GradNet()
|
||||||
|
dx = grad_net(Tensor(x, mindspore.float16), output)
|
||||||
|
assert dx.asnumpy().shape == x.shape
|
||||||
|
assert (dx.asnumpy() == expect_dx).all
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.level0
|
||||||
|
@pytest.mark.platform_x86_gpu_training
|
||||||
|
@pytest.mark.env_onecard
|
||||||
|
def test_net_graph_mode_fp64():
|
||||||
|
context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
|
||||||
|
x = np.array([[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
|
||||||
|
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
|
||||||
|
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]])
|
||||||
|
adaptive_avg_pool_2d = ops.AdaptiveAvgPool2D((2, 2))
|
||||||
|
output = adaptive_avg_pool_2d(Tensor(x, mindspore.float64))
|
||||||
|
expect_shape = (3, 2, 2)
|
||||||
|
expect_output = np.array([[[3.0, 4.0], [6.0, 7.0]],
|
||||||
|
[[3.0, 4.0], [6.0, 7.0]],
|
||||||
|
[[3.0, 4.0], [6.0, 7.0]]])
|
||||||
|
assert output.asnumpy().shape == expect_shape
|
||||||
|
assert (output.asnumpy() == expect_output).all
|
||||||
|
|
||||||
|
expect_dx = np.array([[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]],
|
||||||
|
[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]],
|
||||||
|
[[0.75, 1.75, 1.0],
|
||||||
|
[2.25, 5.0, 2.75],
|
||||||
|
[1.5, 3.25, 1.75]]])
|
||||||
|
grad_net = GradNet()
|
||||||
|
dx = grad_net(Tensor(x, mindspore.float64), output)
|
||||||
|
assert dx.asnumpy().shape == x.shape
|
||||||
|
assert (dx.asnumpy() == expect_dx).all
|
||||||
|
|
Loading…
Reference in New Issue