43 lines
1.5 KiB
Java
Raw Normal View History

2021-02-01 14:31:20 +09:00
/*
* ******************************************************************************
* *
* *
* * This program and the accompanying materials are made available under the
* * terms of the Apache License, Version 2.0 which is available at
* * https://www.apache.org/licenses/LICENSE-2.0.
* *
2021-02-01 17:47:29 +09:00
* * See the NOTICE file distributed with this work for additional
* * information regarding copyright ownership.
2021-02-01 14:31:20 +09:00
* * 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.
* *
* * SPDX-License-Identifier: Apache-2.0
* *****************************************************************************
*/
DL4J CNN2D layers NHWC support (#376) * First steps for DL4J NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Conv2d NHWC forward pass works Signed-off-by: Alex Black <blacka101@gmail.com> * Conv2d NHWC backprop Signed-off-by: Alex Black <blacka101@gmail.com> * Conv2d backprop + fixes; subsampling fwd/bwd; improve tests Signed-off-by: Alex Black <blacka101@gmail.com> * Zero padding layer NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Cropping2D NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Deconv2d NHWC + clean up NHWC test framework code duplication Signed-off-by: Alex Black <blacka101@gmail.com> * CnnLossLayer NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Upsampling and batchnorm NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Space to depth Signed-off-by: Alex Black <blacka101@gmail.com> * Depthwise pt1 Signed-off-by: Alex Black <blacka101@gmail.com> * Depthwise pt2 and LRN Signed-off-by: Alex Black <blacka101@gmail.com> * SpaceToBatch Signed-off-by: Alex Black <blacka101@gmail.com> * LocallyConnected2D Signed-off-by: Alex Black <blacka101@gmail.com> * Fix depthwise nhwc support Signed-off-by: Alex Black <blacka101@gmail.com> * Upsampling NHWC - workaround for #8857 Signed-off-by: Alex Black <blacka101@gmail.com> * Workaround for #8859 - SpaceToDepth Signed-off-by: Alex Black <blacka101@gmail.com> * Batch normalization workaround - #8860 Signed-off-by: Alex Black <blacka101@gmail.com> * cuDNN fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Switch cudnn conv2d to permute based impl due to 'true' NHWC not working Signed-off-by: Alex Black <blacka101@gmail.com> * cuDNN subsampling helper NHWC fix Signed-off-by: Alex Black <blacka101@gmail.com> * Upsampling/batchnorm fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Small fixes Signed-off-by: Alex Black <blacka101@gmail.com> * CNN2D NHWC gradient checks (make CNNGradientCheckTest parameterized) Signed-off-by: Alex Black <blacka101@gmail.com> * Gradient checks, SConv2d, bunch of fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Small fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Global pooling NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Also test both float and double for cuDNN NHWC tests Signed-off-by: Alex Black <blacka101@gmail.com> * Javadoc Signed-off-by: Alex Black <blacka101@gmail.com> * Ignore failing keras import test until next PR Signed-off-by: Alex Black <blacka101@gmail.com>
2020-04-22 22:54:29 +10:00
package org.deeplearning4j.nn.conf;
tf.keras import test and fixes (#347) * merge conf * merge conf * tfkeras tests * parameterized tests * rename * cuda versions * jccp versions * 'updates' * updates * rnn+mlp passing * repeat * updates * tests * Update pom.xml * Update pom.xml * rem print * cnn1d model conversion fixed * cnn1d activate fixed * cnn1d outptut shape fix * cnn1d bprop fix * cnn1d stack fix * KerasModelEndToEndTest - Remove permutes for NWC and NHWC format tests Signed-off-by: Alex Black <blacka101@gmail.com> * Fixes and update test - input shapes (NCHW -> NHWC input) Signed-off-by: Alex Black <blacka101@gmail.com> * Ignore for known bad tests Signed-off-by: Alex Black <blacka101@gmail.com> * Multiple fixes - MergeVertex, CNN1D layers, etc Signed-off-by: Alex Black <blacka101@gmail.com> * Fix issue with RNN/FF preprocessors, time distributed etc with NWC format Signed-off-by: Alex Black <blacka101@gmail.com> * LSTM NWC dropout fix Signed-off-by: Alex Black <blacka101@gmail.com> * Add sequence embedding layer NWC support (configurable output format) Signed-off-by: Alex Black <blacka101@gmail.com> * Fix expected shape in a couple of tests - NWC expected Signed-off-by: Alex Black <blacka101@gmail.com> * Fix EmbeddingSequenceLayer backprop for NWC output case + add gradient checks Signed-off-by: Alex Black <blacka101@gmail.com> * CnnToFeedForwardPreprocessor: align with Keras/TF; fix Keras reshape/flatten Signed-off-by: Alex Black <blacka101@gmail.com> * Update ConvDataFormatTests to match new reshape behaviour Signed-off-by: Alex Black <blacka101@gmail.com> * Switch hard-coded path to ResourceUtils.listClassPathfiles for TestTFKerasModelImport Signed-off-by: Alex Black <blacka101@gmail.com> * TestUtils fix Signed-off-by: Alex Black <blacka101@gmail.com> * Fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Fix JSON serde issue with data formats Signed-off-by: Alex Black <blacka101@gmail.com> * Fix for input dtype inference; fix 2 tests Signed-off-by: Alex Black <blacka101@gmail.com> * Test fixes Signed-off-by: Alex Black <blacka101@gmail.com> * #8891 Ignore for TestVertxUIMultiSession until fixed Signed-off-by: Alex Black <blacka101@gmail.com> * Restore but deprecate TensorFlowCnnToFeedForwardPreProcessor for older zoo models Signed-off-by: Alex Black <blacka101@gmail.com> * Ignore for deprecated preprocessor in DTypeTests Signed-off-by: Alex Black <blacka101@gmail.com> * Remove debug printlns Signed-off-by: Alex Black <blacka101@gmail.com> Co-authored-by: Alex Black <blacka101@gmail.com>
2020-04-28 14:31:09 +04:00
public enum CNN2DFormat implements DataFormat {
DL4J CNN2D layers NHWC support (#376) * First steps for DL4J NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Conv2d NHWC forward pass works Signed-off-by: Alex Black <blacka101@gmail.com> * Conv2d NHWC backprop Signed-off-by: Alex Black <blacka101@gmail.com> * Conv2d backprop + fixes; subsampling fwd/bwd; improve tests Signed-off-by: Alex Black <blacka101@gmail.com> * Zero padding layer NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Cropping2D NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Deconv2d NHWC + clean up NHWC test framework code duplication Signed-off-by: Alex Black <blacka101@gmail.com> * CnnLossLayer NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Upsampling and batchnorm NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Space to depth Signed-off-by: Alex Black <blacka101@gmail.com> * Depthwise pt1 Signed-off-by: Alex Black <blacka101@gmail.com> * Depthwise pt2 and LRN Signed-off-by: Alex Black <blacka101@gmail.com> * SpaceToBatch Signed-off-by: Alex Black <blacka101@gmail.com> * LocallyConnected2D Signed-off-by: Alex Black <blacka101@gmail.com> * Fix depthwise nhwc support Signed-off-by: Alex Black <blacka101@gmail.com> * Upsampling NHWC - workaround for #8857 Signed-off-by: Alex Black <blacka101@gmail.com> * Workaround for #8859 - SpaceToDepth Signed-off-by: Alex Black <blacka101@gmail.com> * Batch normalization workaround - #8860 Signed-off-by: Alex Black <blacka101@gmail.com> * cuDNN fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Switch cudnn conv2d to permute based impl due to 'true' NHWC not working Signed-off-by: Alex Black <blacka101@gmail.com> * cuDNN subsampling helper NHWC fix Signed-off-by: Alex Black <blacka101@gmail.com> * Upsampling/batchnorm fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Small fixes Signed-off-by: Alex Black <blacka101@gmail.com> * CNN2D NHWC gradient checks (make CNNGradientCheckTest parameterized) Signed-off-by: Alex Black <blacka101@gmail.com> * Gradient checks, SConv2d, bunch of fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Small fixes Signed-off-by: Alex Black <blacka101@gmail.com> * Global pooling NHWC support Signed-off-by: Alex Black <blacka101@gmail.com> * Also test both float and double for cuDNN NHWC tests Signed-off-by: Alex Black <blacka101@gmail.com> * Javadoc Signed-off-by: Alex Black <blacka101@gmail.com> * Ignore failing keras import test until next PR Signed-off-by: Alex Black <blacka101@gmail.com>
2020-04-22 22:54:29 +10:00
NCHW,
NHWC;
/**
* Returns a string that explains the dimensions:<br>
* NCHW -> returns "[minibatch, channels, height, width]"<br>
* NHWC -> returns "[minibatch, height, width, channels]"
*/
public String dimensionNames(){
switch (this){
case NCHW:
return "[minibatch, channels, height, width]";
case NHWC:
return "[minibatch, height, width, channels]";
default:
throw new IllegalStateException("Unknown enum: " + this); //Should never happen
}
}
}