diff --git a/src/main/java/org/bioimageanalysis/icy/deeplearning/tensorflow/v1/tensor/MappedBufferToImgLib2.java b/src/main/java/org/bioimageanalysis/icy/deeplearning/tensorflow/v1/tensor/MappedBufferToImgLib2.java
index 143358d0a9c50e0a49e3aec92ee853e725a6ea04..f6c84c8163e484c443f404364eb94e22dec3746d 100644
--- a/src/main/java/org/bioimageanalysis/icy/deeplearning/tensorflow/v1/tensor/MappedBufferToImgLib2.java
+++ b/src/main/java/org/bioimageanalysis/icy/deeplearning/tensorflow/v1/tensor/MappedBufferToImgLib2.java
@@ -32,9 +32,10 @@ public final class MappedBufferToImgLib2
 	 * Pattern that matches the header of the temporal file for interprocess communication
 	 * and retrieves data type and shape
 	 */
-    private static final Pattern HEADER_PATTERN =
-            Pattern.compile("\\{'dtype':'([a-zA-Z0-9]+)','axes':'([a-zA-Z0-9]+)'"
-            		+ ",'name':'(.+?)',shape':'\\[(\\d+(,\\d+)*)\\]'}");
+    private static final Pattern HEADER_PATTERN = Pattern.compile("'dtype':'([a-zA-Z0-9]+)'"
+            + ",'axes':'([a-zA-Z]+)'"
+            + ",'name':'([^']*)'"
+            + ",'shape':'(\\[\\s*(?:(?:[1-9]\\d*|0)\\s*,\\s*)*(?:[1-9]\\d*|0)?\\s*\\])'");
     /**
      * Key for data type info
      */
@@ -248,17 +249,19 @@ public final class MappedBufferToImgLib2
      * @return
      */
     public static HashMap<String, Object> getDataTypeAndShape(String infoStr) {
-	   Matcher m = HEADER_PATTERN.matcher(infoStr);
-       if (!m.find()) {
-           throw new IllegalArgumentException("Cannot find datatype and dimensions "
-           		+ "info in file hader: " + infoStr);
+       Matcher matcher = HEADER_PATTERN.matcher(infoStr);
+       if (!matcher.find()) {
+           throw new IllegalArgumentException("Cannot find datatype, name, axes and dimensions "
+           		+ "info in file header: " + infoStr);
        }
-       String typeStr = m.group(1);
-       String axesStr = m.group(2);
-       String nameStr = m.group(3);
-       String shapeStr = m.group(4);
+       String typeStr = matcher.group(1);
+       String axesStr = matcher.group(2);
+       String nameStr = matcher.group(3);
+       String shapeStr = matcher.group(4);
+       
        long[] shape = new long[0];
        if (!shapeStr.isEmpty() && !shapeStr.equals("[]")) {
+    	   shapeStr = shapeStr.substring(0, shapeStr.length() - 1);
            String[] tokens = shapeStr.split(", ?");
            shape = Arrays.stream(tokens).mapToLong(Long::parseLong).toArray();
        }