From a3381d25f81abbc11676e977537f8710386e8dc1 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Thu, 7 Feb 2019 02:05:01 +0000 Subject: [PATCH 01/13] changes for dataset --- S2parser.py | 22 ++-- SimpleTrain.ipynb | 287 ++++++++++++++++++++++++++++++++-------------- train.py | 3 +- 3 files changed, 217 insertions(+), 95 deletions(-) diff --git a/S2parser.py b/S2parser.py index 23d5ee1..53a5609 100644 --- a/S2parser.py +++ b/S2parser.py @@ -59,7 +59,7 @@ def write(self, filename, x10, x20, x60, doy, year, labels): sys.stdout.flush() def get_shapes(self, sample): - print "reading shape of data using the sample "+sample + print("reading shape of data using the sample "+sample) data = self.read_and_return(sample) return [tensor.shape for tensor in data] @@ -92,12 +92,12 @@ def read(self,filenames): elif isinstance(filenames,tf.FIFOQueue): filename_queue = filenames else: - print "please insert either list or tf.FIFOQueue" + print("please insert either list or tf.FIFOQueue") reader = tf.TFRecordReader() f, serialized_example = reader.read(filename_queue) - print f + print(f) feature = tf.parse_single_example(serialized_example, features=self.feature_format) @@ -153,10 +153,10 @@ def read_and_return(self,filename): return sess.run(feature_op) def test(): - print "Running self test:" - print "temporary tfrecord file is written with random numbers" - print "tfrecord file is read back" - print "contents are compared" + print("Running self test:") + print("temporary tfrecord file is written with random numbers") + print("tfrecord file is read back") + print("contents are compared") filename="tmptile.tfrecord" @@ -176,11 +176,11 @@ def test(): x10_, x20_, x60_, doy_, year_, labels_ = read_and_return(filename) # test if wrote and read data is the same - print "TEST" + print("TEST") if np.all(x10_==x10) and np.all(x20_==x20) and np.all(x60_==x60) and np.all(labels_==labels) and np.all(doy_==doy) and np.all(year_==year): - print "PASSED" + print("PASSED") else: - print "NOT PASSED" + print("NOT PASSED") # remove file @@ -195,4 +195,4 @@ def test(): #x10, x20, x60, doy, year, labels = read_and_return("data/bavaria/1.tfrecord") parser = S2parser() - parser.tfrecord_to_pickle("1.tfrecord","1.pkl") \ No newline at end of file + parser.tfrecord_to_pickle("1.tfrecord","1.pkl") diff --git a/SimpleTrain.ipynb b/SimpleTrain.ipynb index 1bcd1f4..616a84f 100644 --- a/SimpleTrain.ipynb +++ b/SimpleTrain.ipynb @@ -19,16 +19,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", - "from S2parser import S2parser\n", + "from S2parser_africa import S2parser\n", "import os\n", "import gzip\n", "import shutil\n", "import tensorflow as tf\n", + "import pickle\n", + "import h5py\n", "\n", "parser=S2parser()" ] @@ -37,15 +39,64 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 1. Create a fake random dataset" + "## 1. Create dataset" ] }, { "cell_type": "code", - "execution_count": 14, - "metadata": { - "collapsed": true - }, + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "hdf5_filepath = '/home/roserustowicz/croptype_data_local/data/ghana/data.hdf5'\n", + "grid_dir = '/home/roserustowicz/croptype_data_local/data/ghana'\n", + "\n", + "use_s2 = True\n", + "country = 'ghana'\n", + "dataset = 'full'\n", + "\n", + "S2_BAND_MEANS = { 'ghana': np.array([2620.00, 2519.89, 2630.31, 2739.81, 3225.22, 3562.64, 3356.57, 3788.05, 2915.40, 2102.65]),\n", + " 'southsudan': np.array([2119.15, 2061.95, 2127.71, 2277.60, 2784.21, 3088.40, 2939.33, 3308.03, 2597.14, 1834.81]),\n", + " 'tanzania': np.array([2551.54, 2471.35, 2675.69, 2799.99, 3191.33, 3453.16, 3335.64, 3660.05, 3182.23, 2383.79])}\n", + "\n", + "S2_BAND_STDS = { 'ghana': np.array([2171.62, 2085.69, 2174.37, 2084.56, 2058.97, 2117.31, 1988.70, 2099.78, 1209.48, 918.19]),\n", + " 'southsudan': np.array([2113.41, 2026.64, 2126.10, 2093.35, 2066.81, 2114.85, 2049.70, 2111.51, 1320.97, 1029.58]),\n", + " 'tanzania': np.array([2290.97, 2204.75, 2282.90, 2214.60, 2182.51, 2226.10, 2116.62, 2210.47, 1428.33, 1135.21])}\n", + "\n", + "MIN_TIMESTAMPS = 25" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def write_field_sample(hdf5_filepath, filepath, country): \n", + " grid_id = filepath.split('/')[-1].replace(\".tfrecord\", \"\")\n", + " with h5py.File(hdf5_filepath, 'r') as data:\n", + " s2 = None\n", + " s2_doy = None\n", + "\n", + " s2 = data['s2'][grid_id]\n", + " #s2 = normalization(s2, country)\n", + " s2_doy = data['s2_dates'][grid_id][()]\n", + " s2, s2_doy, _ = sample_timeseries(s2, MIN_TIMESTAMPS, dates=s2_doy, sample_w_clouds=False)\n", + "\n", + " year = (np.ones((len(s2_doy), )) * 2017).astype(int)\n", + " \n", + " grid = moveTimeToStart(s2)\n", + " grid = np.transpose(grid, (0, 2, 3, 1))\n", + " label = data['labels'][grid_id][()]\n", + " \n", + " parser = S2parser()\n", + " parser.write(filepath, s2, s2_doy, year, label)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, "outputs": [], "source": [ "def write_random_sample(filepath,nobs=46, pix10=24, bands10=4, pix20=12, bands20=6, pix60=6, bands60=3):\n", @@ -67,61 +118,113 @@ " # gzip .tfrecord to .tfrecord.gz\n", " with open(infile, 'rb') as f_in:\n", " with gzip.open(outfile, 'wb') as f_out:\n", - " shutil.copyfileobj(f_in, f_out)\n", + " shutil.copyfileobj(f_in, f_out)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def normalization(grid, country):\n", + " \"\"\" Normalization based on values defined in constants.py\n", + " Args: \n", + " grid - (tensor) grid to be normalized\n", + " satellite - (str) describes source that grid is from (\"s1\" or \"s2\")\n", + "\n", + " Returns:\n", + " grid - (tensor) a normalized version of the input grid\n", + " \"\"\"\n", + " num_bands = grid.shape[0]\n", + " s2_band_means = S2_BAND_MEANS[country]\n", + " s2_band_stds = S2_BAND_STDS[country]\n", + " grid = (grid-s2_band_means[:num_bands].reshape(num_bands, 1, 1, 1))/s2_band_stds[:num_bands].reshape(num_bands, 1, 1, 1)\n", + " return grid" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def moveTimeToStart(arr):\n", + " return np.transpose(arr, [3, 0, 1, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def sample_timeseries(img_stack, num_samples, dates=None, timestamps_first=False, sample_w_clouds=True):\n", + " timestamps = img_stack.shape[3]\n", + " scores = np.ones((timestamps,))\n", + "\n", + " # Compute probabilities of scores with softmax\n", + " probabilities = softmax(scores)\n", + " samples = np.random.choice(timestamps, size=num_samples, replace=False, p=probabilities)\n", "\n", - " # remove unzipped .tfrecord\n", - " #os.remove(infile)" + " # Sort samples to maintain sequential ordering\n", + " samples.sort()\n", + "\n", + " # Use sampled indices to sample image and cloud stacks\n", + " sampled_img_stack = img_stack[:, :, :, samples]\n", + "\n", + " # Samples dates\n", + " sampled_dates = None\n", + " if dates is not None:\n", + " sampled_dates = dates[samples]\n", + "\n", + " return sampled_img_stack, sampled_dates, None" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['tmp/0.tfrecord', 'tmp/1.tfrecord', 'tmp/2.tfrecord', 'tmp/3.tfrecord', 'tmp/4.tfrecord', 'tmp/5.tfrecord', 'tmp/6.tfrecord', 'tmp/7.tfrecord', 'tmp/8.tfrecord', 'tmp/9.tfrecord']\n", - "writing tmp/0.tfrecord\n", - "compressing tmp/0.tfrecord -> tmp/0.tfrecord.gz\n", - "writing tmp/1.tfrecord\n", - "compressing tmp/1.tfrecord -> tmp/1.tfrecord.gz\n", - "writing tmp/2.tfrecord\n", - "compressing tmp/2.tfrecord -> tmp/2.tfrecord.gz\n", - "writing tmp/3.tfrecord\n", - "compressing tmp/3.tfrecord -> tmp/3.tfrecord.gz\n", - "writing tmp/4.tfrecord\n", - "compressing tmp/4.tfrecord -> tmp/4.tfrecord.gz\n", - "writing tmp/5.tfrecord\n", - "compressing tmp/5.tfrecord -> tmp/5.tfrecord.gz\n", - "writing tmp/6.tfrecord\n", - "compressing tmp/6.tfrecord -> tmp/6.tfrecord.gz\n", - "writing tmp/7.tfrecord\n", - "compressing tmp/7.tfrecord -> tmp/7.tfrecord.gz\n", - "writing tmp/8.tfrecord\n", - "compressing tmp/8.tfrecord -> tmp/8.tfrecord.gz\n", - "writing tmp/9.tfrecord\n", - "compressing tmp/9.tfrecord -> tmp/9.tfrecord.gz\n" - ] - } - ], + "outputs": [], + "source": [ + "def softmax(x):\n", + " \"\"\"\n", + " Computes softmax values for a vector x.\n", + "\n", + " Args: \n", + " x - (numpy array) a vector of real values\n", + "\n", + " Returns: a vector of probabilities, of the same dimensions as x\n", + " \"\"\"\n", + " e_x = np.exp(x - np.max(x))\n", + " return e_x / e_x.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], "source": [ "# define directory to store the fake dataset\n", - "directory=\"tmp\"\n", + "directory=\"/home/roserustowicz/MTLCC-tf-fork/tmp\"\n", "if not os.path.exists(directory):\n", " os.makedirs(directory)\n", - "\n", - "filepaths=[\"{}/{}.tfrecord\".format(directory,i) for i in range(10)]\n", - "zippedfilepaths=[\"{}/{}.tfrecord.gz\".format(directory,i) for i in range(10)]\n", - "print(filepaths)\n", + " \n", + "for split in ['train', 'val', 'test']:\n", + " grid_path = os.path.join(grid_dir, f\"{country}_{dataset}_{split}\")\n", + " with open(grid_path, \"rb\") as f:\n", + " grid_list = list(pickle.load(f))\n", + " \n", + " filepaths=[\"{}/{}.tfrecord\".format(directory,i) for i in grid_list]\n", + " zippedfilepaths=[\"{}/{}.tfrecord.gz\".format(directory,i) for i in grid_list]\n", "\n", "# create the dataset\n", - "for filepath,zippedfilepath in zip(filepaths,zippedfilepaths):\n", - " write_random_sample(filepath)\n", - " print(\"writing \"+filepath)\n", - " ziptfrecord(filepath,zippedfilepath)\n", - " print(\"compressing \"+filepath+\" -> \"+zippedfilepath)\n", + "#for filepath, zippedfilepath in zip(filepaths, zippedfilepaths):\n", + "# write_field_sample(hdf5_filepath, filepath, country)\n", + "# print(\"writing \"+filepath)\n", + "# ziptfrecord(filepath,zippedfilepath)\n", + "# print(\"compressing \"+filepath+\" -> \"+zippedfilepath)\n", " " ] }, @@ -141,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -153,11 +256,16 @@ "applying the mapping function on all samples (will read tfrecord file and normalize the values)\n", "repeat forever until externally stopped\n", "combine samples to batches\n", + "WARNING:tensorflow:From :37: batch_and_drop_remainder (from tensorflow.contrib.data.python.ops.batching) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.data.Dataset.batch(..., drop_remainder=True)`.\n", "make iterator\n" ] } ], "source": [ + "import pdb\n", + "\n", "batchsize=2\n", "\n", "print(\"Reset all previously loaded graphs (in case this or the next cells have been executed twice)\")\n", @@ -167,17 +275,18 @@ "dataset = tf.data.TFRecordDataset(zippedfilepaths, compression_type=\"GZIP\")\n", "#dataset = tf.data.TFRecordDataset(filepaths)\n", "\n", - "\n", "def normalize(serialized_feature):\n", " \"\"\" normalize stored integer values to floats approx. [0,1] \"\"\"\n", - " x10, x20, x60, doy, year, labels = serialized_feature\n", + " x10, doy, year, labels = serialized_feature\n", + " #x10, x20, x60, doy, year, labels = serialized_feature\n", " x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32))\n", - " x20 = tf.scalar_mul(1e-4, tf.cast(x20, tf.float32))\n", - " x60 = tf.scalar_mul(1e-4, tf.cast(x60, tf.float32))\n", + " #x20 = tf.scalar_mul(1e-4, tf.cast(x20, tf.float32))\n", + " #x60 = tf.scalar_mul(1e-4, tf.cast(x60, tf.float32))\n", " doy = tf.cast(doy, tf.float32) / 365\n", " year = tf.cast(year, tf.float32) - 2016\n", "\n", - " return x10, x20, x60, doy, year, labels\n", + " #return x10, x20, x60, doy, year, labels\n", + " return x10, doy, year, labels\n", "\n", "def mapping_function(serialized_feature):\n", " # read data from .tfrecords\n", @@ -206,37 +315,40 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "retrieving one sample as numpy array (just for fun)\n", - "x10.shape: (2, 46, 24, 24, 4)\n" + "1.10.0\n" ] }, { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAEICAYAAACQ6CLfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAGLFJREFUeJzt3Xl01OW9BvDnSxLCDgE0ssoWBFQa\nlFJFVFwQlApKXbAuqFT0uqK4YG2rntJ7PW4ordgLsikipYoCxYIUF8Q9KLIICCLKEnZZQyDL9/6R\nSU+kZJ6RJDPJfZ/POZwkM09+eTPhyW8y8877mrtDRMJTLdEDEJHEUPlFAqXyiwRK5RcJlMovEiiV\nXyRQKr9IoFR++REzu8LMPjSzHDN79wjXZ5rZosj1i8wsMwHDlHKg8svhdgJ4BsBjh19hZtUBzAAw\nGUAagEkAZkQulypG5Q+QmbU1s51mdkrk46Zmts3Merr7v9x9GoBNR/jUngCSATzj7gfdfRQAA3Bu\n3AYv5UblD5C7fwPgAQCTzawWgAkAJrn7u+RTTwSwxH88J3xJ5HKpYpITPQBJDHcfa2YXA/gEgAPo\nF8On1QGw+7DLdgOoW87DkzjQmT9sYwGcBODP7n4whvw+APUOu6wegL3lPTCpeCp/oMysDooe2BsH\n4BEzaxjDpy0H0NnMrMRlnSOXSxWj8ofrWQBZ7v4bALMB/BUAzCzJzGqg6E/CamZWw8xSIp/zLoAC\nAHeaWaqZ3R65/O34Dl3Kg+n1/OExs/4ARgM42d13Ru4FLAbwMIAUFD0AWNIkd78+8rldALwAoBOA\nFQAGu/sX8Rq7lB+VXyRQutsvEiiVXyRQKr9IoFR+kUDFdYZfcs3anlI/+tPJ1XfwuSb5rZNopkZS\nHs3kFfLjFGznr1lJ3nWAZgCg+gn8wdWD62vQTGF1/js7hm8NKfsKaMZb8EzeHn4bVd+eSzO5zVJp\nJmW30Ux+LRpBcmw/MrRuvplmvl+RRjN5rXjVCgr494a86D/7/J07UbB/fwwHinP5U+o3RJvr7oma\nafHSGnqcnaMOn2T2n9qnbaWZrQf4rNTdY1vQTIOZS2kGAFq+WEgza+/rQDP7m/CS5Kbxn3/6Bz/Q\nTP7I/TSzeS6/jVqMX0UzKx5qQzPN5/BffNsy+W++Rsv5zwIAXnziSZq5o9sAmsl+ms+h2ruvJh9Q\ndvSf/caRz/BjRJTpbr+Z9TGzVWa2xsyGl+VYIhJfR11+M0sC8ByAC1E04eMqM+tUXgMTkYpVljN/\nNwBr3H2tux8CMBVA//IZlohUtLKUvxmA9SU+3hC57EfMbIiZZZlZVsEB/vejiMRHhT/V5+5j3L2r\nu3dNqlm7or+ciMSoLOXfCKDkw7zNI5eJSBVQlvJ/BiDDzFpHFnAcCGBm+QxLRCraUT/P7+75kddz\nzwWQBGC8u0dd1CGl/iEcd+H6aBFceAN/PvjphRfQTNpw/q3tPIVPzmh562qauerR2J7nH/eLU2lm\n8Mdv0MyLfXvSzBP/mkIzF8+4m2Ysmz/33K739zTT/Rp+p3Drs+1p5iCf4oEB/RbSzKsnxLbi+J09\nBvJQIz6rKP2P/P/j7kF8spSlk0lwKbHNXwDKOMnH3d8E8GZZjiEiiaG5/SKBUvlFAqXyiwRK5RcJ\nlMovEiiVXyRQKr9IoOK+V181RF/NZvY1PegxWj3OF+pYeecxNNP4QxrBrt+3pJlHh/KvBQAHHmhA\nMw/Oz6CZLuO/pZk3951EM8k5fMGPhQP+QjOX3c4nC004uznN1GrEx+MxrFGTWfs7mplbmy+aAgD5\nTfhEsBte+gfNvHT+GTTT9F3+2pfknOiV3b4jpkV8AOjMLxIslV8kUCq/SKBUfpFAqfwigVL5RQKl\n8osESuUXCVRcJ/nk7a6OTXOiT5o5rg7fR2nKCS/TzIWz7qeZ1N18K6q9LfjuOHVe4SuwAED+5Xtp\n5tcZX9BMVj++s83oh86lmQ5/200zb17ammZqf7ePZgpr1aGZltM20cyOM5rSzIQr+tJMevZ2mgEA\nq8bPj7/7x5U003wc3/ZrVseRNNP/jqFRr/efcDrXmV8kUCq/SKBUfpFAqfwigVL5RQKl8osESuUX\nCZTKLxKouE7yqVYvH7XPib4KT8oLO+hxpu/rSDN72vEJPDlN+e++VwfyiRcf5rSlGQAYt5av5jJz\n3ck0028m3x6s4NRsmjnpU34bTet3Js380I3voXX96QtoZuoTfDuzlk/wbd63j8inmfyChjQDAOkj\nUmimZps9NNMglU9e63vfPfw4H62Nen3SvkP0GMV05hcJlMovEiiVXyRQKr9IoFR+kUCp/CKBUvlF\nAqXyiwQqrpN8ktYcQoNL10fN1Hubb1nUq/ZKmpkxla9kk/TlGpr5uD9fNWfss/1oBgDe//2zNJPj\neTTz6ytvpZkp346mmWd2nEYzQ2bPpZl737iWZj69JIZtyCZvoJlRr/GtsX4+9y6a6fjQ9zQDAKtH\n8pWDUrLq0szBUdH/3wNA3uV8q63Nl0afUJb3Kl95qpjO/CKBKtOZ38zWAdgLoABAvrt3LY9BiUjF\nK4+7/ee4e2yrIYpIpaG7/SKBKmv5HcBbZrbIzIYcKWBmQ8wsy8yy8jy3jF9ORMpLWe/293D3jWZ2\nLIB5ZrbS3X/02k13HwNgDADUq9bIy/j1RKSclOnM7+4bI2+3AngdQLfyGJSIVLyjLr+Z1TazusXv\nA7gAwLLyGpiIVKyy3O1PB/C6mRUfZ4q7z4n2CXnptbDh+uirtayfzb/w+sHv0cymM/lkIR/WimZm\nnMO3mXpgwRSaAYBzh99JMw3nfkMzud35RI5u04fRTMfH+USXdvO30Aya8VVq9nc6lmZ61ufnjqHr\n+VZcJ9yymGZ6fM63TgOAkwuirzwFADNT+OpLK5/qQDNWna/Cc8z86FvDWSE9xL8ddfndfS2Anx3t\n54tIYumpPpFAqfwigVL5RQKl8osESuUXCZTKLxIolV8kUCq/SKDiu4xX3TzUP2dz1EzOP46jx7l1\nyhFfQPgjf7jxbzzzz8tpZkrWCzTT7xa+bBQAJKfy1zXlndCMZup+Gf02BICkK/ledAcz+G29LZ8v\nUfXoqbNo5sX002nmmGQ+625HL77M2Tcjfk4zqz7m+/kBgOXx86Mb/7k+0JNPXZ11Hp8pOHtR1Em0\n6LZ4Gz1GMZ35RQKl8osESuUXCZTKLxIolV8kUCq/SKBUfpFAqfwigTL3+C2o26DDsX7W2CuiZr7b\nlUaPs/drnunafRXNfLK0Hc3UWcPnQeXzlb4AAI2/LKCZDb34z+Ozi0fSzI1rf0UzG19uTTPHvsKX\n1lp/G5+cktOCf+/1VyTRTPJ+fvscszCGpce2/8AzALZczpffangl32MwJy+FZrI38//X/U7+Mur1\nf7t6LrZ8tZNv+ged+UWCpfKLBErlFwmUyi8SKJVfJFAqv0igVH6RQKn8IoGK60o+vsZxqH9u1EzO\nMD7RIeNPX9DMwKV8csqnNVvRTMupG2lmxX0taAYANg3ge7HVrRv99gGAay7hKxnNmfUyzZy/+kaa\n+fp5PhHK8w/STON3ou8xBwB72vIJPB/d8BTNnPncvTTjxlcxAoCDjfnmd9UmN6eZxp/vopl6xvc8\nHDA9K+r1c5Nz6DGK6cwvEiiVXyRQKr9IoFR+kUCp/CKBUvlFAqXyiwRK5RcJVFwn+bQ7cQ9mzHk7\nauakCZ3ocfJO45m61T6jmerratBM9mi+TE/b2nwiEACk3FGTZmr8la8wc8qE9TRz+rBbaGbHED6p\nxLfyMXfo/D3NnHI3H/OuvFo0c0336CtBAUDuY/z7qp3Fvy8ASNrEz4+973qfZhZs4ZOlti9oQjPr\nDjWOev2hwmx6jGL0OzOz8Wa21cyWlbisoZnNM7PVkbd8Wp6IVCqx3O2fCKDPYZcNBzDf3TMAzI98\nLCJVCC2/uy8AsPOwi/sDmBR5fxKAS8p5XCJSwY72Ab90dy/+42IzgPTSgmY2xMyyzCxr2w6+gquI\nxEeZH+33orW/S305lruPcfeu7t71mEZ8aWYRiY+jLf8WM2sCAJG3W8tvSCISD0db/pkABkXeHwRg\nRvkMR0TiJZan+l4B8BGAE8xsg5kNBvAYgF5mthrA+ZGPRaQKiet2XSd3TvHps6NPUri972/ocbb8\nNx/z/qUNaaZa+30002pEPs08/PpkmgGAh27iK/DsOZ6veJO2kq/W8sa0sTTTfyAfz7YufOJNQSqN\noMlHfMw3jud3IB9efDHNfNVjIs2c8tnVNAMAUzPH0czdGT1pZteVp9BMci7/f32wXvTz9coZI7F/\n23pt1yUipVP5RQKl8osESuUXCZTKLxIolV8kUCq/SKBUfpFAxXUlnw2H0vDA99Ff/ZvyHN/WqH8D\nvnLM/HE9aGZHB74Vk23aTjOTd3SnGQBYewX/XXv9ae/RzGX1F9FMl0n30Mzlf1lIM7+st5hmfnfj\nTTRjefwVnQUxnIvmnT6aZjqNv49m6q2lEQDAPVf3oplRa96imUHD+SSfeu/xQVlq9Elga3bzLeGK\n6cwvEiiVXyRQKr9IoFR+kUCp/CKBUvlFAqXyiwRK5RcJVFxX8klt08ybjrgtaqbVBP776KbR02nm\njxOvopncdD7Jp7AGzzSdH9PCKcirxb+3rrd/QTOL/tyFZnLT+Jj2tucTb7w6//77Zi6hmSUjfkYz\nG87nY36s91SaySnkSwulWGzLyGdU30wzD594Ns30/mwTzYydfBHNnPer6NvQTbtmLrZ+tUMr+YhI\n6VR+kUCp/CKBUvlFAqXyiwRK5RcJlMovEiiVXyRQcV3Jp3bqIfyi9bqomY+vbUOPc0zyHprJr8Mn\nL9VosZdmcn6oSTPdH+Qr6wDA+5vb0syTTRbQzPkHM2mmxk4+nrTZfAJPzY18S7P3ep9KMwWd+XiS\ncvjP7KGsS2nmrTP+QjN9XuKr/QBAXhq/jTo05ZtUvzSKT3Jq8elumpnVJvrPfncO//9TTGd+kUCp\n/CKBUvlFAqXyiwRK5RcJlMovEiiVXyRQKr9IoOK6kk/9Wk39tHaDo2Y292xIj3Psp3xyzthXn6eZ\noev4hJHcfnz7o9XDO9EMALTsupFmdv29Gc3szuA/s8xfrKGZWsn8e7s1/R2auXnJNTTzm4wPaWbs\n+L400/Q9PsFr4GS+fdbYPwygGQDI7hFDP+rl04gX8sV1qu3mc+6uOff9qNePG/guNi3fpZV8RKR0\ntPxmNt7MtprZshKXPWJmG81sceQfX3xMRCqVWM78EwH0OcLlI909M/LvzfIdlohUNFp+d18AIIaX\niYhIVVKWv/lvN7MlkT8L0koLmdkQM8sys6xD+fvL8OVEpDwdbfmfB9AWQCaAbABPlRZ09zHu3tXd\nu1ZPrn2UX05EyttRld/dt7h7gbsXAhgLoFv5DktEKtpRld/MmpT48FIAy0rLikjlRGcVmNkrAHoC\naGxmGwA8DKCnmWUCcADrANwc81ckv27qreMTJr65vA7NXPI/fKWWJ+4dQzNPNbuMZjIe+4pmAGB/\njxNoZjff+QmtZx2kmaW5GTTTbEEezTQc+0+aqTWtPs3M+rYnzdz0wmyamXkRXxJo8n/9kmb23cVX\nzQGAzmn8se4D+Sn8QOdtoJH9c/gqVlOW/zzq9TsORN/OqyRafnc/0qZ342L+CiJSKWmGn0igVH6R\nQKn8IoFS+UUCpfKLBErlFwmUyi8SqLhu15XbOAlf39ggaqbd1Bx6nLSOuTRzyy/5tkUPruSruRw6\ntxHNPDX0VZoBgBG38ok3TT+I6VBUvcwdNLOlI5+ccvdZA2mmyUvf0MyyjU1p5p9bT6SZmsl8YtLK\nm/lEsW7HZtMMAOQW8IrM7TiXZnpX41ua3duWr0A05o4Lol6/fVMBPUYxnflFAqXyiwRK5RcJlMov\nEiiVXyRQKr9IoFR+kUCp/CKBiut2XXXaH+eZz10XNbN+A59U8/q5z9HMBwfa8ePc2otm1t5IIzhu\ndnUeAjDtiSdp5sx5Q2mm+ewkminkEWw6l//sj2vFJwsVvnIszTT6ZBvNnPPaFzTzQx5fBPb7A3zL\ntxU7+JgBIL3OPpo5OKIJzaQu/pZmCnb+QDMnZUXfiWvK1fOw5aud2q5LREqn8osESuUXCZTKLxIo\nlV8kUCq/SKBUfpFAqfwigVL5RQIV12W8qmUnIXVE9GW86nbjs+U69uG/s57e3Jpm9j/A92tr/7sa\nNPP89FE0AwC9xt1PM6ee/zXN5DzAZ+bd9jFfD6xNMt+Hru+su2mmSS4fT9/XP6GZv646k2aGdfwX\nzSzbw5cMy2i4nWYAYNM+vg9hSgyTZHf1ak8zZ9zPb6NrG34Y9fq5yXxGYjGd+UUCpfKLBErlFwmU\nyi8SKJVfJFAqv0igVH6RQKn8IoGK6ySfvHRH9t2HomauzVhIj/NRbirNrBrN933LvGMxzbSZyCeD\nXPokn7wDAO/d/wTN9P3yBpopuCyG/QNvaUUzt4zmewxWO8RXhNrVlp9D3tvJJ7l0b8aXujq75lo+\nnsa1aObvj/SmGQAoqM6//zqb+WSp5Bw+WWx5rzSauW/n6VGv31DIJ0EVoz81M2thZu+Y2VdmttzM\n7opc3tDM5pnZ6shbPnIRqTRiudufD2CYu3cCcBqA28ysE4DhAOa7ewaA+ZGPRaSKoOV392x3/zzy\n/l4AKwA0A9AfwKRIbBKASypqkCJS/n7SA35m1gpAFwCfAEh39+JNzjcDSC/lc4aYWZaZZeXvySnD\nUEWkPMVcfjOrA+A1AEPdfU/J67xo8f8jvrbJ3ce4e1d375pcjz8QIyLxEVP5zSwFRcV/2d2nRy7e\nYmZNItc3AbC1YoYoIhUhlkf7DcA4ACvc/ekSV80EMCjy/iAAM8p/eCJSUWJ5nv8MANcCWGpmxU+M\n/xbAYwCmmdlgAN8BuKJihigiFYGW390XAihtpsN5P+mLbauGxmOj/91/9nMr6XFWHuJ7o+U24pMz\nUqvl08yce8+mmVHPj6YZADhr/H00k5TLj5PUh+/plvw4XxFpwoALaSb14vKZBLrkbT7Jp+1oPoGn\n/9V8QtW+zvxGPGfYcpoBgLeXdKSZ3vfzY13XgK/SM+GH6BN4AGDusz2iXl8w4yN6jGKa3isSKJVf\nJFAqv0igVH6RQKn8IoFS+UUCpfKLBErlFwlUXFfyOdQQ+P7KwqiZ9KQD9Dg3/+9lNPPl/XzizXnX\nDqaZ/c1TaOadvZ1oBgDqreX7OjX+lK8c9MptL9LMPU/3opm3l3egmfaDo28PBQC7rz6NZtKW7qKZ\nXRNr00zSLBopfUpaCWv38tWQAOD4GCatL2rfkmYuqLuUZoY05BN0pnTpHvX6/Hn0EP+mM79IoFR+\nkUCp/CKBUvlFAqXyiwRK5RcJlMovEiiVXyRQcZ3kYwcNqWujb7X1YEY/epxmc7bRzM8Kb6WZ9Jz9\nNLOnb/TtxQDg1Zd60gwApO3iKwd5df4jmbyHr4qzcP7JNJPSln//161aTzPNkpfQzOMXDaCZDzpP\np5l9J/FVevqv5CvK7Z/YlGYA4OQ/8Mk5G24+nmYercm3YStMTaKZpIvI+ZrPI/s3nflFAqXyiwRK\n5RcJlMovEiiVXyRQKr9IoFR+kUCp/CKBsqLdteP0xcy2oWhfv2KNAfClayqfqjhujTl+Ejnu4939\nmFiCcS3/f3xxsyx375qwARylqjhujTl+qsq4dbdfJFAqv0igEl3+MQn++kerKo5bY46fKjHuhP7N\nLyKJk+gzv4gkiMovEqiEld/M+pjZKjNbY2bDEzWOn8LM1pnZUjNbbGZZiR5PacxsvJltNbNlJS5r\naGbzzGx15G1aIsd4uFLG/IiZbYzc3ovN7KJEjvFwZtbCzN4xs6/MbLmZ3RW5vFLf1sUSUn4zSwLw\nHIALAXQCcJWZxbbnVeKd4+6Zlfx53IkA+hx22XAA8909A8D8yMeVyUT855gBYGTk9s509zfjPCYm\nH8Awd+8E4DQAt0X+H1f22xpA4s783QCscfe17n4IwFQA/RM0lv933H0BgJ2HXdwfwKTI+5MAXBLX\nQRGljLlSc/dsd/888v5eACsANEMlv62LJar8zQCUXBxuQ+Syys4BvGVmi8xsSKIH8xOlu3t25P3N\nANITOZif4HYzWxL5s6BS3n0GADNrBaALgE9QRW5rPeD30/Rw91NQ9OfKbWZ2VqIHdDS86PndqvAc\n7/MA2gLIBJAN4KnEDufIzKwOgNcADHX3PSWvq8y3daLKvxFAixIfN49cVqm5+8bI260AXkfRny9V\nxRYzawIAkbdbEzweyt23uHuBuxcCGItKeHubWQqKiv+yuxcvP1wlbutElf8zABlm1trMqgMYCGBm\ngsYSEzOrbWZ1i98HcAGAZdE/q1KZCWBQ5P1BAGLYeT6xigsUcSkq2e1tZgZgHIAV7v50iauqxG2d\nsBl+kadtngGQBGC8u/8pIQOJkZm1QdHZHija72BKZR2zmb0CoCeKXlq6BcDDAN4AMA1ASxS9rPoK\nd680D7CVMuaeKLrL7wDWAbi5xN/SCWdmPQC8D2ApgMLIxb9F0d/9lfa2LqbpvSKB0gN+IoFS+UUC\npfKLBErlFwmUyi8SKJVfJFAqv0ig/g8pQnJiQchYYQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "InternalError", + "evalue": "Failed to create session.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mInternalError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__version__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0msess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitializer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"retrieving one sample as numpy array (just for fun)\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 1492\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1493\u001b[0m \"\"\"\n\u001b[0;32m-> 1494\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1495\u001b[0m \u001b[0;31m# NOTE(mrry): Create these on first `__enter__` to avoid a reference cycle.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1496\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_default_graph_context_manager\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 626\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_NewSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_c_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 627\u001b[0m \u001b[0;31m# pylint: enable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 628\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mInternalError\u001b[0m: Failed to create session." + ] } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", - "\n", + "print(tf.__version__)\n", + " \n", "with tf.Session() as sess:\n", " sess.run(iterator.initializer)\n", " print(\"retrieving one sample as numpy array (just for fun)\")\n", - " x10, x20, x60, doy, year, labels = sess.run(iterator.get_next())\n", + " x10, doy, year, labels = sess.run(iterator.get_next())\n", " print(\"x10.shape: \" + str(x10.shape))\n", " plt.imshow(x10[0,0,:,:,0])\n", " plt.title(\"x10\")" @@ -251,18 +363,20 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 15, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading network graph definition\n", - "initializing variables, tables and the data iterator\n", - "getting one string handle from the iterator that can be fed to the network\n", - "making some processing nodes accessible to python\n", - "performing one training step\n" + "ename": "InternalError", + "evalue": "Failed to create session.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mInternalError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"tmp/convgru128/graph.meta\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"loading network graph definition\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 1492\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1493\u001b[0m \"\"\"\n\u001b[0;32m-> 1494\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1495\u001b[0m \u001b[0;31m# NOTE(mrry): Create these on first `__enter__` to avoid a reference cycle.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1496\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_default_graph_context_manager\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 626\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_NewSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_c_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 627\u001b[0m \u001b[0;31m# pylint: enable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 628\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mInternalError\u001b[0m: Failed to create session." ] } ], @@ -293,25 +407,32 @@ " print(\"performing one training step\")\n", " sess.run(train_op,feed_dict={iterator_handle_op: iterator_handle, is_train_op: True})" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:croptype]", "language": "python", - "name": "python2" + "name": "conda-env-croptype-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" + "pygments_lexer": "ipython3", + "version": "3.6.6" } }, "nbformat": 4, diff --git a/train.py b/train.py index bf36f97..403a2a7 100644 --- a/train.py +++ b/train.py @@ -3,6 +3,7 @@ from Dataset import Dataset import argparse import datetime +import pdb MODEL_GRAPH_NAME = "graph.meta" TRAINING_IDS_IDENTIFIER = "train" @@ -119,7 +120,7 @@ def write_summaries(sess, datasets): for partition in datasets[dataset].keys(): handle = datasets[dataset][partition]["handle"] writer = datasets[dataset][partition]["writer"] - + print('handle: ', handle.shape, handle) ops = [tf.summary.merge_all(), cross_entropy_op, overall_accuracy_op] sum, xe, oa = sess.run(ops, feed_dict={iterator_handle_op: handle, is_train_op: True}) writer.add_summary(sum, samples) From 3f486ce799552b2776ac0a6e2fdf38f281a84f9c Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Thu, 7 Feb 2019 23:51:13 +0000 Subject: [PATCH 02/13] remove 20m and 60m from model --- SimpleTrain.ipynb | 250 +++++++++++++++++++++++++++++++++------- modelzoo/seqencmodel.py | 28 ++--- 2 files changed, 217 insertions(+), 61 deletions(-) diff --git a/SimpleTrain.ipynb b/SimpleTrain.ipynb index 616a84f..763979d 100644 --- a/SimpleTrain.ipynb +++ b/SimpleTrain.ipynb @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 44, "metadata": {}, "outputs": [], "source": [ @@ -44,12 +44,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "hdf5_filepath = '/home/roserustowicz/croptype_data_local/data/ghana/data.hdf5'\n", "grid_dir = '/home/roserustowicz/croptype_data_local/data/ghana'\n", + "num_classes = 4\n", "\n", "use_s2 = True\n", "country = 'ghana'\n", @@ -68,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -79,7 +80,6 @@ " s2_doy = None\n", "\n", " s2 = data['s2'][grid_id]\n", - " #s2 = normalization(s2, country)\n", " s2_doy = data['s2_dates'][grid_id][()]\n", " s2, s2_doy, _ = sample_timeseries(s2, MIN_TIMESTAMPS, dates=s2_doy, sample_w_clouds=False)\n", "\n", @@ -88,6 +88,7 @@ " grid = moveTimeToStart(s2)\n", " grid = np.transpose(grid, (0, 2, 3, 1))\n", " label = data['labels'][grid_id][()]\n", + " label[label > num_classes] = 0 \n", " \n", " parser = S2parser()\n", " parser.write(filepath, s2, s2_doy, year, label)" @@ -95,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -123,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 56, "metadata": {}, "outputs": [], "source": [ @@ -145,7 +146,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -155,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 58, "metadata": {}, "outputs": [], "source": [ @@ -183,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 59, "metadata": {}, "outputs": [], "source": [ @@ -202,12 +203,156 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018556.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018556.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018556.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039008.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039008.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039008.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034236.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034236.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034236.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026306.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026306.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026306.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026916.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026916.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026916.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023035.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023035.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023035.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013888.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013888.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013888.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033594.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033594.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033594.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002289.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002289.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002289.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001554.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001554.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001554.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026759.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026759.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026759.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044017.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044017.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044017.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004423.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004423.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004423.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034246.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034246.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034246.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018123.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018123.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018123.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044024.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044024.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044024.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023494.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023494.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023494.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008483.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008483.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008483.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031840.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031840.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031840.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036606.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036606.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036606.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024787.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024787.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024787.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025888.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025888.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025888.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037452.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037452.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037452.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009911.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009911.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009911.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032524.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032524.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032524.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013432.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013432.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013432.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030810.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030810.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030810.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027421.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027421.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027421.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001550.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001550.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001550.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025909.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025909.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025909.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/005273.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/005273.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/005273.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017361.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017361.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017361.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026790.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026790.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026790.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039042.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039042.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039042.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017613.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017613.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017613.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031470.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031470.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031470.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001373.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001373.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001373.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033814.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033814.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033814.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034830.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034830.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034830.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026919.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026919.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026919.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017956.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017956.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017956.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031771.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031771.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031771.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018087.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018087.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018087.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001552.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001552.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001552.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033719.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033719.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033719.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035932.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035932.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035932.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001386.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001386.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001386.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009412.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009412.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009412.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009410.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009410.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009410.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024756.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024756.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024756.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036655.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036655.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036655.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017797.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017797.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017797.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023515.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023515.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023515.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023460.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023460.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023460.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038774.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038774.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038774.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037099.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037099.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037099.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025065.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025065.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025065.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033898.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033898.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033898.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025475.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025475.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025475.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029091.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029091.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029091.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014361.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014361.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014361.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026067.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026067.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026067.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord.gz\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025170.tfrecord\n" + ] + } + ], "source": [ - "# define directory to store the fake dataset\n", - "directory=\"/home/roserustowicz/MTLCC-tf-fork/tmp\"\n", + "# define directory to store the dataset\n", + "directory=\"/home/roserustowicz/MTLCC-tf-fork/tmp_africa\"\n", "if not os.path.exists(directory):\n", " os.makedirs(directory)\n", " \n", @@ -220,11 +365,11 @@ " zippedfilepaths=[\"{}/{}.tfrecord.gz\".format(directory,i) for i in grid_list]\n", "\n", "# create the dataset\n", - "#for filepath, zippedfilepath in zip(filepaths, zippedfilepaths):\n", - "# write_field_sample(hdf5_filepath, filepath, country)\n", - "# print(\"writing \"+filepath)\n", - "# ziptfrecord(filepath,zippedfilepath)\n", - "# print(\"compressing \"+filepath+\" -> \"+zippedfilepath)\n", + "for filepath, zippedfilepath in zip(filepaths, zippedfilepaths):\n", + " write_field_sample(hdf5_filepath, filepath, country)\n", + " print(\"writing \"+filepath)\n", + " ziptfrecord(filepath,zippedfilepath)\n", + " print(\"compressing \"+filepath+\" -> \"+zippedfilepath)\n", " " ] }, @@ -244,7 +389,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -256,9 +401,6 @@ "applying the mapping function on all samples (will read tfrecord file and normalize the values)\n", "repeat forever until externally stopped\n", "combine samples to batches\n", - "WARNING:tensorflow:From :37: batch_and_drop_remainder (from tensorflow.contrib.data.python.ops.batching) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Use `tf.data.Dataset.batch(..., drop_remainder=True)`.\n", "make iterator\n" ] } @@ -315,28 +457,29 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1.10.0\n" + "1.10.0\n", + "retrieving one sample as numpy array (just for fun)\n", + "x10.shape: (2, 10, 64, 64, 25)\n" ] }, { - "ename": "InternalError", - "evalue": "Failed to create session.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mInternalError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__version__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0msess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitializer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"retrieving one sample as numpy array (just for fun)\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 1492\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1493\u001b[0m \"\"\"\n\u001b[0;32m-> 1494\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1495\u001b[0m \u001b[0;31m# NOTE(mrry): Create these on first `__enter__` to avoid a reference cycle.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1496\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_default_graph_context_manager\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 626\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_NewSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_c_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 627\u001b[0m \u001b[0;31m# pylint: enable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 628\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mInternalError\u001b[0m: Failed to create session." - ] + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ @@ -363,27 +506,46 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 12, "metadata": {}, "outputs": [ { - "ename": "InternalError", - "evalue": "Failed to create session.", + "name": "stdout", + "output_type": "stream", + "text": [ + "loading network graph definition\n", + "initializing variables, tables and the data iterator\n", + "getting one string handle from the iterator that can be fed to the network\n", + "making some processing nodes accessible to python\n", + "performing one training step\n" + ] + }, + { + "ename": "InvalidArgumentError", + "evalue": "Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n\nCaused by op 'input/IteratorFromStringHandle', defined at:\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/traitlets/config/application.py\", line 658, in launch_instance\n app.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelapp.py\", line 505, in start\n self.io_loop.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 422, in run_forever\n self._run_once()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 1434, in _run_once\n handle._run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/events.py\", line 145, in _run\n self._callback(*self._args)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/ioloop.py\", line 758, in _run_callback\n ret = callback()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1233, in inner\n self.run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1147, in run\n yielded = self.gen.send(value)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 357, in process_one\n yield gen.maybe_future(dispatch(*args))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 267, in dispatch_shell\n yield gen.maybe_future(handler(stream, idents, msg))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 534, in execute_request\n user_expressions, allow_stdin,\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/ipkernel.py\", line 294, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/zmqshell.py\", line 536, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2817, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2843, in _run_cell\n return runner(coro)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/async_helpers.py\", line 67, in _pseudo_sync_runner\n coro.send(None)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3018, in run_cell_async\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3183, in run_ast_nodes\n if (yield from self.run_code(code, result)):\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3265, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 8, in \n tf.train.import_meta_graph(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/training/saver.py\", line 1939, in import_meta_graph\n **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py\", line 744, in import_scoped_meta_graph\n producer_op_list=producer_op_list)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 442, in import_graph_def\n _ProcessNewOps(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 234, in _ProcessNewOps\n for new_op in graph._add_new_tf_operations(compute_devices=False): # pylint: disable=protected-access\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in _add_new_tf_operations\n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in \n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3180, in _create_op_from_tf_operation\n ret = Operation(c_op, self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nInvalidArgumentError (see above for traceback): Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mInternalError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"tmp/convgru128/graph.meta\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msess\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"loading network graph definition\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 1492\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1493\u001b[0m \"\"\"\n\u001b[0;32m-> 1494\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1495\u001b[0m \u001b[0;31m# NOTE(mrry): Create these on first `__enter__` to avoid a reference cycle.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1496\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_default_graph_context_manager\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, target, graph, config)\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 626\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_NewSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_c_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 627\u001b[0m \u001b[0;31m# pylint: enable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 628\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mInternalError\u001b[0m: Failed to create session." + "\u001b[0;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1277\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1278\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1279\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[0;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[1;32m 1262\u001b[0m return self._call_tf_sessionrun(\n\u001b[0;32m-> 1263\u001b[0;31m options, feed_dict, fetch_list, target_list, run_metadata)\n\u001b[0m\u001b[1;32m 1264\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_call_tf_sessionrun\u001b[0;34m(self, options, feed_dict, fetch_list, target_list, run_metadata)\u001b[0m\n\u001b[1;32m 1349\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1350\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1351\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mInvalidArgumentError\u001b[0m: Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"performing one training step\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 25\u001b[0;31m \u001b[0msess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_op\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0miterator_handle_op\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0miterator_handle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mis_train_op\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 875\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 876\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[0;32m--> 877\u001b[0;31m run_metadata_ptr)\n\u001b[0m\u001b[1;32m 878\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 879\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run\u001b[0;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1099\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[0;32m-> 1100\u001b[0;31m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[1;32m 1101\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1102\u001b[0m \u001b[0mresults\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_run\u001b[0;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1270\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[0;32m-> 1272\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1273\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1274\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1289\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1290\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1291\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnode_def\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmessage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1292\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1293\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_extend_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mInvalidArgumentError\u001b[0m: Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n\nCaused by op 'input/IteratorFromStringHandle', defined at:\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/traitlets/config/application.py\", line 658, in launch_instance\n app.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelapp.py\", line 505, in start\n self.io_loop.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 422, in run_forever\n self._run_once()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 1434, in _run_once\n handle._run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/events.py\", line 145, in _run\n self._callback(*self._args)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/ioloop.py\", line 758, in _run_callback\n ret = callback()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1233, in inner\n self.run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1147, in run\n yielded = self.gen.send(value)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 357, in process_one\n yield gen.maybe_future(dispatch(*args))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 267, in dispatch_shell\n yield gen.maybe_future(handler(stream, idents, msg))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 534, in execute_request\n user_expressions, allow_stdin,\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/ipkernel.py\", line 294, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/zmqshell.py\", line 536, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2817, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2843, in _run_cell\n return runner(coro)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/async_helpers.py\", line 67, in _pseudo_sync_runner\n coro.send(None)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3018, in run_cell_async\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3183, in run_ast_nodes\n if (yield from self.run_code(code, result)):\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3265, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 8, in \n tf.train.import_meta_graph(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/training/saver.py\", line 1939, in import_meta_graph\n **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py\", line 744, in import_scoped_meta_graph\n producer_op_list=producer_op_list)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 442, in import_graph_def\n _ProcessNewOps(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 234, in _ProcessNewOps\n for new_op in graph._add_new_tf_operations(compute_devices=False): # pylint: disable=protected-access\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in _add_new_tf_operations\n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in \n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3180, in _create_op_from_tf_operation\n ret = Operation(c_op, self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nInvalidArgumentError (see above for traceback): Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n" ] } ], "source": [ "# define the network to be loaded\n", "# if not yet created, make one with python modelzoo/seqencoder.py script, as described in the readme.md\n", - "graph=\"tmp/convgru128/graph.meta\"\n", + "graph=\"tmp_africa/convgru128/graph.meta\"\n", "\n", "with tf.Session() as sess:\n", "\n", diff --git a/modelzoo/seqencmodel.py b/modelzoo/seqencmodel.py index 1e7e874..622110f 100644 --- a/modelzoo/seqencmodel.py +++ b/modelzoo/seqencmodel.py @@ -41,12 +41,10 @@ ## expected data format ## tf.app.flags.DEFINE_string("expected_datatypes", - "(tf.float32, tf.float32, tf.float32, tf.float32, tf.float32, tf.int64)", "expected datatypes") -tf.app.flags.DEFINE_integer("pix10m", 24, "number of 10m pixels") -tf.app.flags.DEFINE_integer("num_bands_10m", 4, "number of bands in 10 meter resolution (4)") -tf.app.flags.DEFINE_integer("num_bands_20m", 6, "number of bands in 20 meter resolution (6)") -tf.app.flags.DEFINE_integer("num_bands_60m", 3, "number of bands in 20 meter resolution (3)") -tf.app.flags.DEFINE_integer("num_classes", 17, "number of classes not counting unknown class -> e.g. 0:uk,1:a,2:b,3:c,4:d -> num_classes 4") + "(tf.float32, tf.float32, tf.float32, tf.int64)", "expected datatypes") +tf.app.flags.DEFINE_integer("pix10m", 64, "number of 10m pixels") +tf.app.flags.DEFINE_integer("num_bands_10m", 10, "number of bands in 10 meter resolution (4)") +tf.app.flags.DEFINE_integer("num_classes", 4, "number of classes not counting unknown class -> e.g. 0:uk,1:a,2:b,3:c,4:d -> num_classes 4") ## performance ## tf.app.flags.DEFINE_boolean("swap_memory", True, "Swap memory between GPU and CPU for recurrent layers") @@ -86,12 +84,13 @@ def build_graph(self, modelpath=None): print("building inference...") self.logits = self.inference(input=(x, sequence_lengths)) + print('tf logits: ', tf.shape(self.logits)) # reduce label size to same shape like logits (important for downsampling) b,w,h,d = self.logits.get_shape() # take first label -> assume labels do not change over timeseries - first_labelmap = alllabels[:,0] + first_labelmap = alllabels # we only have one # create one-hot labelmap from 0-num_classes labels = tf.one_hot(first_labelmap, self.num_classes+1) @@ -102,6 +101,7 @@ def build_graph(self, modelpath=None): # keep rest of labels self.labels = labels[:,:,:,1:] + print('tf labels: ', tf.shape(self.labels)) # mask out all classes labeled unknown (labelid=0) @@ -165,11 +165,9 @@ def input(self): output_types=eval(FLAGS.expected_datatypes)) with tf.name_scope("raw"): - x10, x20, x60, doy, year, labels = iterator.get_next() + x10, doy, year, labels = iterator.get_next() self.x10 = tf.cast(x10, tf.float32, name="x10") - self.x20 = tf.cast(x20, tf.float32, name="x20") - self.x60 = tf.cast(x60, tf.float32, name="x60") self.doy = tf.cast(doy, tf.float32, name="doy") self.year = tf.cast(year, tf.float32,name="year") self.y = tf.cast(labels, tf.int32,name="y") @@ -206,22 +204,18 @@ def expand3x(vector): #b,t,w,h,d = self.x10.shape() - x20 = tf.identity(resize(self.x20, px, px),name="x20") - x60 = tf.identity(resize(self.x60, px, px),name="x60") - tf.add_to_collection(ADVANCED_SUMMARY_COLLECTION_NAME,tf.identity(self.x10, name="x10")) - tf.add_to_collection(ADVANCED_SUMMARY_COLLECTION_NAME, x20) - tf.add_to_collection(ADVANCED_SUMMARY_COLLECTION_NAME, x60) # expand doymat = tf.multiply(expand3x(self.doy), tf.ones((b,t,px,px,1)),name="doy") yearmat = self.yearmat = tf.multiply(expand3x(self.year), tf.ones((b, t, px, px, 1)),name="year") - x = tf.concat((self.x10,x20,x60,doymat,yearmat),axis=-1,name="x") + #x = tf.concat((self.x10,x20,x60,doymat,yearmat),axis=-1,name="x") + x = tf.concat((self.x10,doymat,yearmat),axis=-1,name="x") tf.add_to_collection(ADVANCED_SUMMARY_COLLECTION_NAME, x) # set depth of x for convolutions - depth = FLAGS.num_bands_10m + FLAGS.num_bands_20m + FLAGS.num_bands_60m + 2 # doy and year + depth = FLAGS.num_bands_10m + 2 # doy and year # dynamic shapes. Fill for debugging From edfe07db86ad3f7f472f8b2fb74ff07d5fc4c043 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Thu, 7 Feb 2019 23:59:57 +0000 Subject: [PATCH 03/13] repeat label? --- SimpleTrain.ipynb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SimpleTrain.ipynb b/SimpleTrain.ipynb index 763979d..b52f340 100644 --- a/SimpleTrain.ipynb +++ b/SimpleTrain.ipynb @@ -88,7 +88,10 @@ " grid = moveTimeToStart(s2)\n", " grid = np.transpose(grid, (0, 2, 3, 1))\n", " label = data['labels'][grid_id][()]\n", - " label[label > num_classes] = 0 \n", + " label[label > num_classes] = 0 \n", + " label = np.expand_dims(label, axis=0)\n", + " label = np.tile(label, (grid.shape[0], 1, 1))\n", + " print(label.shape)\n", " \n", " parser = S2parser()\n", " parser.write(filepath, s2, s2_doy, year, label)" From 3c63c1680c2da83d46dfc81d5c5829a5f1ccf1a6 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Fri, 8 Feb 2019 21:22:24 +0000 Subject: [PATCH 04/13] changes --- Dataset.py | 57 +- SimpleTrain.ipynb | 1316 +++++++++++++++++++++++++++++++++++++-- modelzoo/seqencmodel.py | 13 +- train.py | 59 +- 4 files changed, 1325 insertions(+), 120 deletions(-) diff --git a/Dataset.py b/Dataset.py index 42e0c0d..48c5b3c 100644 --- a/Dataset.py +++ b/Dataset.py @@ -1,4 +1,4 @@ -from S2parser import S2parser +from S2parser_africa import S2parser import tensorflow as tf import os import configparser @@ -82,8 +82,6 @@ def __init__(self, datadir, verbose=False, temporal_samples=None, section="datas assert 'pix10' in cfg.keys() assert 'nobs' in cfg.keys() assert 'nbands10' in cfg.keys() - assert 'nbands20' in cfg.keys() - assert 'nbands60' in cfg.keys() self.tiletable=cfg["tiletable"] @@ -91,26 +89,20 @@ def __init__(self, datadir, verbose=False, temporal_samples=None, section="datas self.expected_shapes = self.calc_expected_shapes(int(cfg["pix10"]), int(cfg["nobs"]), - int(cfg["nbands10"]), - int(cfg["nbands20"]), - int(cfg["nbands60"]) + int(cfg["nbands10"]) ) # expected datatypes as read from disk - self.expected_datatypes = (tf.float32, tf.float32, tf.float32, tf.float32, tf.float32, tf.int64) + self.expected_datatypes = (tf.float32, tf.float32, tf.float32, tf.int64) - def calc_expected_shapes(self, pix10, nobs, bands10, bands20, bands60): - pix20 = pix10 / 2; - pix60 = pix10 / 6; + def calc_expected_shapes(self, pix10, nobs, bands10): x10shape = (nobs, pix10, pix10, bands10) - x20shape = (nobs, pix20, pix20, bands20) - x60shape = (nobs, pix60, pix60, bands60) doyshape = (nobs,) yearshape = (nobs,) labelshape = (nobs, pix10, pix10) - return [x10shape, x20shape, x60shape, doyshape, yearshape, labelshape] + return [x10shape, doyshape, yearshape, labelshape] def transform_labels(self,feature): """ @@ -118,32 +110,30 @@ def transform_labels(self,feature): 2. perform label lookup as stored label ids might be not sequential labelid:[0,3,4] -> dimid:[0,1,2] """ - x10, x20, x60, doy, year, labels = feature + x10, doy, year, labels = feature # take first label time [46,24,24] -> [24,24] # labels are not supposed to change over the time series #labels = labels[0] labels = self.id_lookup_table.lookup(labels) - return x10, x20, x60, doy, year, labels + return x10, doy, year, labels def normalize(self, feature): - x10, x20, x60, doy, year, labels = feature + x10, doy, year, labels = feature x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32)) - x20 = tf.scalar_mul(1e-4, tf.cast(x20, tf.float32)) - x60 = tf.scalar_mul(1e-4, tf.cast(x60, tf.float32)) doy = tf.cast(doy, tf.float32) / 365 # year = (2016 - tf.cast(year, tf.float32)) / 2017 year = tf.cast(year, tf.float32) - 2016 - return x10, x20, x60, doy, year, labels + return x10, doy, year, labels def augment(self, feature): - x10, x20, x60, doy, year, labels = feature + x10, doy, year, labels = feature ## Flip UD @@ -152,8 +142,6 @@ def augment(self, feature): # flip x10 = tf.cond(condition, lambda: tf.reverse(x10, axis=[1]), lambda: x10) - x20 = tf.cond(condition, lambda: tf.reverse(x20, axis=[1]), lambda: x20) - x60 = tf.cond(condition, lambda: tf.reverse(x60, axis=[1]), lambda: x60) labels = tf.cond(condition, lambda: tf.reverse(labels, axis=[1]), lambda: labels) @@ -164,11 +152,9 @@ def augment(self, feature): # flip x10 = tf.cond(condition, lambda: tf.reverse(x10, axis=[2]), lambda: x10) - x20 = tf.cond(condition, lambda: tf.reverse(x20, axis=[2]), lambda: x20) - x60 = tf.cond(condition, lambda: tf.reverse(x60, axis=[2]), lambda: x60) labels = tf.cond(condition, lambda: tf.reverse(labels, axis=[2]), lambda: labels) - return x10, x20, x60, doy, year, labels + return x10, doy, year, labels def temporal_sample(self, feature): @@ -180,7 +166,7 @@ def temporal_sample(self, feature): if n is None: return feature - x10, x20, x60, doy, year, labels = feature + x10, doy, year, labels = feature # data format 1, 2, 1, 2, -1,-1,-1 # sequence lengths indexes are negative values. @@ -196,19 +182,17 @@ def temporal_sample(self, feature): idxs = -tf.nn.top_k(-shuffled_range, k=n).values x10 = tf.gather(x10, idxs) - x20 = tf.gather(x20, idxs) - x60 = tf.gather(x60, idxs) doy = tf.gather(doy, idxs) year = tf.gather(year, idxs) - return x10, x20, x60, doy, year, labels + return x10, doy, year, labels def get_ids(self, partition, fold=0): def readids(path): with open(path, 'r') as f: lines = f.readlines() - return [int(l.replace("\n", "")) for l in lines] + return [l.replace("\n", "") for l in lines] traintest = "{partition}_fold{fold}.tileids" eval = "{partition}.tileids" @@ -233,10 +217,11 @@ def create_tf_dataset(self, partition, fold, batchsize, shuffle, prefetch_batche # set of ids as present in database of given partition (train/test/eval) and fold (0-9) allids = self.get_ids(partition=partition, fold=fold) - + # set of ids present in local folder (e.g. 1.tfrecord) tiles = os.listdir(self.datadir) - + #print('tiles: ', tiles) + #print('dataadir: ', self.datadir) if tiles[0].endswith(".gz"): compression = "GZIP" ext = ".tfrecord.gz" @@ -244,7 +229,8 @@ def create_tf_dataset(self, partition, fold, batchsize, shuffle, prefetch_batche compression = "" ext = ".tfrecord" - downloaded_ids = [int(t.replace(".gz", "").replace(".tfrecord", "")) for t in tiles] + downloaded_ids = [t.replace(".gz", "").replace(".tfrecord", "") for t in tiles] + #downloaded_ids = [int(t.replace(".gz", "").replace(".tfrecord", "")) for t in tiles] # intersection of available ids and partition ods if overwrite_ids is None: @@ -253,7 +239,6 @@ def create_tf_dataset(self, partition, fold, batchsize, shuffle, prefetch_batche print "overwriting data ids! due to manual input" ids = overwrite_ids - filenames = [os.path.join(self.datadir, str(id) + ext) for id in ids] if self.verbose: @@ -320,9 +305,7 @@ def main(): with tf.Session() as sess: sess.run([iterator.initializer, tf.tables_initializer()]) - x10, x20, x60, doy, year, labels = sess.run(iterator.get_next()) - print x10.shape - + x10, doy, year, labels = sess.run(iterator.get_next()) if __name__ == "__main__": main() diff --git a/SimpleTrain.ipynb b/SimpleTrain.ipynb index b52f340..80d872f 100644 --- a/SimpleTrain.ipynb +++ b/SimpleTrain.ipynb @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ @@ -32,6 +32,8 @@ "import pickle\n", "import h5py\n", "\n", + "from scipy.misc import imresize\n", + "\n", "parser=S2parser()" ] }, @@ -44,13 +46,14 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "hdf5_filepath = '/home/roserustowicz/croptype_data_local/data/ghana/data.hdf5'\n", "grid_dir = '/home/roserustowicz/croptype_data_local/data/ghana'\n", "num_classes = 4\n", + "numpix = 24\n", "\n", "use_s2 = True\n", "country = 'ghana'\n", @@ -69,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 74, "metadata": {}, "outputs": [], "source": [ @@ -87,19 +90,23 @@ " \n", " grid = moveTimeToStart(s2)\n", " grid = np.transpose(grid, (0, 2, 3, 1))\n", + " #grid = grid[:, :numpix, :numpix, :] \n", + " grid = np.resize(grid, new_shape=(grid.shape[0], numpix, numpix, grid.shape[3]))\n", + " print('grid: ', grid.shape)\n", + " \n", " label = data['labels'][grid_id][()]\n", " label[label > num_classes] = 0 \n", + " label = np.resize(label, new_shape=(numpix, numpix))\n", " label = np.expand_dims(label, axis=0)\n", - " label = np.tile(label, (grid.shape[0], 1, 1))\n", - " print(label.shape)\n", + " print('label: ', label.shape)\n", " \n", " parser = S2parser()\n", - " parser.write(filepath, s2, s2_doy, year, label)" + " parser.write(filepath, grid, s2_doy, year, label)" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 75, "metadata": {}, "outputs": [], "source": [ @@ -127,7 +134,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 76, "metadata": {}, "outputs": [], "source": [ @@ -149,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 77, "metadata": {}, "outputs": [], "source": [ @@ -159,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 78, "metadata": {}, "outputs": [], "source": [ @@ -187,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ @@ -206,150 +213,1359 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 80, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018556.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018556.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018556.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039008.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039008.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039008.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034236.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034236.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034236.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026306.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026306.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026306.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026916.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026916.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026916.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023035.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023035.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023035.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013888.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013888.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013888.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033594.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033594.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033594.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002289.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002289.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002289.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001554.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001554.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001554.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026759.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026759.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026759.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044017.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044017.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044017.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004423.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004423.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004423.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034246.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034246.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034246.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018123.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018123.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018123.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044024.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044024.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/044024.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023494.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023494.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023494.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008483.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008483.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008483.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031840.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031840.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031840.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036606.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036606.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036606.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024787.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024787.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024787.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025888.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025888.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025888.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037452.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037452.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037452.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009911.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009911.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009911.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032524.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032524.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032524.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013432.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013432.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013432.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030810.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030810.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030810.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027421.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027421.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027421.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001550.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001550.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001550.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025909.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025909.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025909.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/005273.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/005273.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/005273.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017361.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017361.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017361.tfrecord.gz\n", - "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014020.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026790.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026790.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026790.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039042.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039042.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039042.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017613.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017613.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017613.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031470.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031470.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031470.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001373.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001373.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001373.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033814.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033814.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033814.tfrecord.gz\n", - "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037146.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034830.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034830.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034830.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026919.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026919.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026919.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017956.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017956.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017956.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031771.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031771.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031771.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018087.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018087.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018087.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001552.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001552.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001552.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033719.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033719.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033719.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035932.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035932.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035932.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001386.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001386.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001386.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009412.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009412.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009412.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009410.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009410.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009410.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024756.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024756.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024756.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036655.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036655.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036655.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017797.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017797.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017797.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023515.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023515.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023515.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023460.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023460.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023460.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038774.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038774.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038774.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037099.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037099.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037099.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025065.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025065.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025065.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033898.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033898.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033898.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025475.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025475.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025475.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029091.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029091.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029091.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014361.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014361.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014361.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026067.tfrecord\n", "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026067.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026067.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord\n", - "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord.gz\n", - "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025170.tfrecord\n" + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001397.tfrecord.gz\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025170.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025170.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025170.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031403.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031403.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031403.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016230.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016230.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016230.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032435.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032435.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032435.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009467.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009467.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009467.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043304.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043304.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043304.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000058.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000058.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000058.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025747.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025747.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025747.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009694.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009694.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009694.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021149.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021149.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021149.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018026.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018026.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018026.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/015059.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/015059.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/015059.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026359.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026359.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026359.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018568.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018568.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018568.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031874.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031874.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031874.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027323.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027323.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027323.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025901.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025901.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025901.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000055.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000055.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000055.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031223.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031223.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031223.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016055.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016055.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016055.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009057.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009057.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009057.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023350.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023350.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023350.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025484.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025484.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025484.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028441.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028441.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028441.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026064.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026064.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026064.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043286.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043286.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043286.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009022.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009022.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009022.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003049.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003049.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003049.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025157.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025157.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025157.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026748.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026748.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026748.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012826.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012826.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012826.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031455.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031455.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031455.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025743.tfrecord\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025743.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025743.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023751.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023751.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023751.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041793.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041793.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041793.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016285.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016285.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016285.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031795.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031795.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031795.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018158.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018158.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018158.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022779.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022779.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022779.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008502.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008502.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008502.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023496.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023496.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023496.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009699.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009699.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009699.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031796.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031796.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031796.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004814.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004814.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004814.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018697.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018697.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018697.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020361.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020361.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020361.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032161.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032161.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032161.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030110.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030110.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030110.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023036.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023036.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023036.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026060.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026060.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026060.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036332.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036332.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036332.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028208.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028208.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028208.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017911.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017911.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017911.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039043.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039043.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039043.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023519.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023519.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023519.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002841.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002841.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002841.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000450.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000450.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000450.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036571.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036571.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036571.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014506.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014506.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014506.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001371.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001371.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001371.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003893.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003893.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003893.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000107.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000107.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000107.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001559.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001559.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001559.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019374.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019374.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019374.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025889.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025889.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025889.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001223.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001223.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001223.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018025.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018025.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018025.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040724.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040724.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040724.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008492.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008492.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008492.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023484.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023484.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023484.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017822.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017822.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017822.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017207.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017207.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017207.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001176.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001176.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001176.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008608.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008608.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008608.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025296.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025296.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025296.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002761.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002761.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002761.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024760.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024760.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024760.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019612.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019612.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019612.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018298.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018298.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018298.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022950.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022950.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022950.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028227.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028227.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/028227.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032551.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032551.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032551.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003749.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003749.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003749.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001537.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001537.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001537.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002853.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002853.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002853.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023195.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023195.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023195.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017914.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017914.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017914.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025897.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025897.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025897.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016534.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016534.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016534.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031801.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031801.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031801.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010078.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010078.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010078.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004992.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004992.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004992.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001963.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001963.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001963.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037095.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037095.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037095.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029039.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029039.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029039.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041075.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041075.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041075.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001226.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001226.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001226.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019981.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019981.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019981.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019922.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019922.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019922.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017611.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017611.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017611.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000233.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000233.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000233.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020989.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020989.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020989.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032710.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032710.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032710.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023038.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023038.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023038.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025545.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025545.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025545.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024616.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024616.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024616.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027008.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027008.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027008.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037655.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037655.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037655.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023196.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023196.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023196.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029711.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029711.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029711.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032165.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032165.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032165.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020762.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020762.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020762.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023461.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023461.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023461.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009078.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009078.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009078.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001853.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001853.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001853.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037646.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037646.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037646.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032439.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032439.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032439.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010138.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010138.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010138.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026991.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026991.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026991.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038918.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038918.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038918.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017360.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017360.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017360.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013885.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013885.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013885.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039643.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039643.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039643.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000730.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000730.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000730.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000232.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000232.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000232.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019980.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019980.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019980.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021322.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021322.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021322.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020364.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020364.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020364.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013965.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013965.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013965.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018543.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018543.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018543.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010980.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010980.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010980.tfrecord.gz\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040660.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040660.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040660.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034313.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034313.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/034313.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033810.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033810.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033810.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012874.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012874.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012874.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/042732.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/042732.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/042732.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039532.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039532.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/039532.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018303.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018303.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018303.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036658.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036658.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036658.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004996.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004996.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004996.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035979.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035979.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035979.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029966.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029966.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029966.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032007.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032007.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032007.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017820.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017820.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017820.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025480.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025480.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025480.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020350.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020350.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020350.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020239.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020239.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020239.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026062.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026062.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026062.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023307.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023307.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023307.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012307.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012307.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012307.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041808.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041808.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041808.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033230.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033230.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033230.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025477.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025477.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025477.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037645.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037645.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037645.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/042178.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/042178.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/042178.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014563.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014563.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014563.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024103.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024103.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024103.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014411.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014411.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014411.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012811.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012811.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/012811.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004859.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004859.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/004859.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037096.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037096.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/037096.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010173.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010173.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010173.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023160.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023160.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023160.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001958.tfrecord\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001958.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001958.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031472.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031472.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031472.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021090.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021090.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/021090.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023890.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023890.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023890.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040653.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040653.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040653.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010671.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010671.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/010671.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001398.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001398.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001398.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031450.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031450.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031450.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026230.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026230.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026230.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023500.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023500.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/023500.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014486.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014486.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014486.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038923.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038923.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038923.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029746.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029746.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029746.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022105.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022105.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022105.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020371.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020371.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020371.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040813.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040813.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/040813.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026334.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026334.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026334.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032005.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032005.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032005.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003054.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003054.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/003054.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025728.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025728.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025728.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026911.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026911.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026911.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031869.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031869.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/031869.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017959.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017959.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017959.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017955.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017955.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017955.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009933.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009933.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009933.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038190.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038190.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/038190.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009098.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009098.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009098.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001557.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001557.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001557.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017901.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017901.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017901.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/011813.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/011813.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/011813.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002285.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002285.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002285.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000177.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000177.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000177.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041795.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041795.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041795.tfrecord.gz\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025725.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025725.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025725.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025887.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025887.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025887.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008670.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008670.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008670.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036623.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036623.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036623.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043281.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043281.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043281.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035937.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035937.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/035937.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022920.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022920.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022920.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032723.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032723.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032723.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014481.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014481.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014481.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043289.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043289.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/043289.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009293.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009293.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/009293.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027877.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027877.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027877.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032751.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032751.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032751.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002349.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002349.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/002349.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014426.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014426.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014426.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032006.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032006.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032006.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001449.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001449.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001449.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016233.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016233.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016233.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001216.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001216.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001216.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022845.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022845.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/022845.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008488.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008488.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008488.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014439.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014439.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014439.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013933.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013933.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013933.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019910.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019910.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019910.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001795.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001795.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001795.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000452.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000452.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000452.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000220.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000220.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000220.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008547.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008547.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008547.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019392.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019392.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/019392.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017904.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017904.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017904.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036348.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036348.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/036348.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020351.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020351.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020351.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008613.tfrecord\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008613.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008613.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001483.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001483.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001483.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014021.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014021.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/014021.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020313.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020313.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020313.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008493.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008493.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008493.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029960.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029960.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/029960.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020360.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020360.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/020360.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001446.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001446.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001446.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013930.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013930.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/013930.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026341.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026341.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/026341.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016260.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016260.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/016260.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024276.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024276.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/024276.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018143.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018143.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018143.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001539.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001539.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001539.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017395.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017395.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017395.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017900.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017900.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/017900.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041071.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041071.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/041071.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027418.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027418.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027418.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025885.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025885.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025885.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027415.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027415.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027415.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033590.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033590.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/033590.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032255.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032255.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/032255.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008548.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008548.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008548.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008607.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008607.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/008607.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000380.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000380.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/000380.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001351.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001351.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/001351.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018576.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018576.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/018576.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025727.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025727.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/025727.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027316.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027316.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/027316.tfrecord.gz\n", + "grid: (25, 24, 24, 10)\n", + "label: (1, 24, 24)\n", + "writing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030063.tfrecord\n", + "compressing /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030063.tfrecord -> /home/roserustowicz/MTLCC-tf-fork/tmp_africa/030063.tfrecord.gz\n" ] } ], @@ -359,10 +1575,11 @@ "if not os.path.exists(directory):\n", " os.makedirs(directory)\n", " \n", - "for split in ['train', 'val', 'test']:\n", + "for split in ['test']:\n", " grid_path = os.path.join(grid_dir, f\"{country}_{dataset}_{split}\")\n", " with open(grid_path, \"rb\") as f:\n", " grid_list = list(pickle.load(f))\n", + " grid_list = grid_list\n", " \n", " filepaths=[\"{}/{}.tfrecord\".format(directory,i) for i in grid_list]\n", " zippedfilepaths=[\"{}/{}.tfrecord.gz\".format(directory,i) for i in grid_list]\n", @@ -392,7 +1609,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -418,19 +1635,14 @@ "\n", "print(\"creating dataset object\")\n", "dataset = tf.data.TFRecordDataset(zippedfilepaths, compression_type=\"GZIP\")\n", - "#dataset = tf.data.TFRecordDataset(filepaths)\n", "\n", "def normalize(serialized_feature):\n", " \"\"\" normalize stored integer values to floats approx. [0,1] \"\"\"\n", " x10, doy, year, labels = serialized_feature\n", - " #x10, x20, x60, doy, year, labels = serialized_feature\n", " x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32))\n", - " #x20 = tf.scalar_mul(1e-4, tf.cast(x20, tf.float32))\n", - " #x60 = tf.scalar_mul(1e-4, tf.cast(x60, tf.float32))\n", " doy = tf.cast(doy, tf.float32) / 365\n", " year = tf.cast(year, tf.float32) - 2016\n", - "\n", - " #return x10, x20, x60, doy, year, labels\n", + " \n", " return x10, doy, year, labels\n", "\n", "def mapping_function(serialized_feature):\n", @@ -460,7 +1672,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -469,12 +1681,15 @@ "text": [ "1.10.0\n", "retrieving one sample as numpy array (just for fun)\n", - "x10.shape: (2, 10, 64, 64, 25)\n" + "x10.shape: (2, 25, 24, 24, 10)\n", + "doy.shape: (2, 25)\n", + "year.shape: (2, 25)\n", + "labels.shape: (2, 1, 24, 24)\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -496,6 +1711,9 @@ " print(\"retrieving one sample as numpy array (just for fun)\")\n", " x10, doy, year, labels = sess.run(iterator.get_next())\n", " print(\"x10.shape: \" + str(x10.shape))\n", + " print(\"doy.shape: \" + str(doy.shape))\n", + " print(\"year.shape: \" + str(year.shape))\n", + " print(\"labels.shape: \" + str(labels.shape))\n", " plt.imshow(x10[0,0,:,:,0])\n", " plt.title(\"x10\")" ] @@ -509,46 +1727,34 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "loading network graph definition\n", - "initializing variables, tables and the data iterator\n", - "getting one string handle from the iterator that can be fed to the network\n", - "making some processing nodes accessible to python\n", - "performing one training step\n" + "loading network graph definition\n" ] }, { - "ename": "InvalidArgumentError", - "evalue": "Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n\nCaused by op 'input/IteratorFromStringHandle', defined at:\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/traitlets/config/application.py\", line 658, in launch_instance\n app.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelapp.py\", line 505, in start\n self.io_loop.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 422, in run_forever\n self._run_once()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 1434, in _run_once\n handle._run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/events.py\", line 145, in _run\n self._callback(*self._args)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/ioloop.py\", line 758, in _run_callback\n ret = callback()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1233, in inner\n self.run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1147, in run\n yielded = self.gen.send(value)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 357, in process_one\n yield gen.maybe_future(dispatch(*args))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 267, in dispatch_shell\n yield gen.maybe_future(handler(stream, idents, msg))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 534, in execute_request\n user_expressions, allow_stdin,\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/ipkernel.py\", line 294, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/zmqshell.py\", line 536, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2817, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2843, in _run_cell\n return runner(coro)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/async_helpers.py\", line 67, in _pseudo_sync_runner\n coro.send(None)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3018, in run_cell_async\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3183, in run_ast_nodes\n if (yield from self.run_code(code, result)):\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3265, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 8, in \n tf.train.import_meta_graph(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/training/saver.py\", line 1939, in import_meta_graph\n **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py\", line 744, in import_scoped_meta_graph\n producer_op_list=producer_op_list)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 442, in import_graph_def\n _ProcessNewOps(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 234, in _ProcessNewOps\n for new_op in graph._add_new_tf_operations(compute_devices=False): # pylint: disable=protected-access\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in _add_new_tf_operations\n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in \n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3180, in _create_op_from_tf_operation\n ret = Operation(c_op, self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nInvalidArgumentError (see above for traceback): Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n", + "ename": "OSError", + "evalue": "File /home/roserustowicz/MTLCC-tf-fork/tmp_africa/convgru128/graph.meta does not exist.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1277\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1278\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1279\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[0;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[1;32m 1262\u001b[0m return self._call_tf_sessionrun(\n\u001b[0;32m-> 1263\u001b[0;31m options, feed_dict, fetch_list, target_list, run_metadata)\n\u001b[0m\u001b[1;32m 1264\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_call_tf_sessionrun\u001b[0;34m(self, options, feed_dict, fetch_list, target_list, run_metadata)\u001b[0m\n\u001b[1;32m 1349\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1350\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1351\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mInvalidArgumentError\u001b[0m: Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"performing one training step\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 25\u001b[0;31m \u001b[0msess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_op\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0miterator_handle_op\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0miterator_handle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mis_train_op\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 875\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 876\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[0;32m--> 877\u001b[0;31m run_metadata_ptr)\n\u001b[0m\u001b[1;32m 878\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 879\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run\u001b[0;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1099\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[0;32m-> 1100\u001b[0;31m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[1;32m 1101\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1102\u001b[0m \u001b[0mresults\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_run\u001b[0;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1270\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[0;32m-> 1272\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1273\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1274\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1289\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1290\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1291\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnode_def\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmessage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1292\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1293\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_extend_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mInvalidArgumentError\u001b[0m: Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n\nCaused by op 'input/IteratorFromStringHandle', defined at:\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/traitlets/config/application.py\", line 658, in launch_instance\n app.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelapp.py\", line 505, in start\n self.io_loop.start()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 422, in run_forever\n self._run_once()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/base_events.py\", line 1434, in _run_once\n handle._run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/asyncio/events.py\", line 145, in _run\n self._callback(*self._args)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/ioloop.py\", line 758, in _run_callback\n ret = callback()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1233, in inner\n self.run()\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 1147, in run\n yielded = self.gen.send(value)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 357, in process_one\n yield gen.maybe_future(dispatch(*args))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 267, in dispatch_shell\n yield gen.maybe_future(handler(stream, idents, msg))\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 534, in execute_request\n user_expressions, allow_stdin,\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tornado/gen.py\", line 326, in wrapper\n yielded = next(result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/ipkernel.py\", line 294, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/ipykernel/zmqshell.py\", line 536, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2817, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2843, in _run_cell\n return runner(coro)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/async_helpers.py\", line 67, in _pseudo_sync_runner\n coro.send(None)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3018, in run_cell_async\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3183, in run_ast_nodes\n if (yield from self.run_code(code, result)):\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 3265, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 8, in \n tf.train.import_meta_graph(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/training/saver.py\", line 1939, in import_meta_graph\n **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py\", line 744, in import_scoped_meta_graph\n producer_op_list=producer_op_list)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 442, in import_graph_def\n _ProcessNewOps(graph)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/importer.py\", line 234, in _ProcessNewOps\n for new_op in graph._add_new_tf_operations(compute_devices=False): # pylint: disable=protected-access\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in _add_new_tf_operations\n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3289, in \n for c_op in c_api_util.new_tf_operations(self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3180, in _create_op_from_tf_operation\n ret = Operation(c_op, self)\n File \"/home/roserustowicz/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nInvalidArgumentError (see above for traceback): Number of components does not match: expected 6 types but got 4.\n\t [[Node: input/IteratorFromStringHandle = IteratorFromStringHandle[output_shapes=[, , , , , ], output_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_INT64], _device=\"/job:localhost/replica:0/task:0/device:CPU:0\"](_arg_data_iterator_handle_0_0)]]\n" + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"loading network graph definition\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimport_meta_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgraph\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"initializing variables, tables and the data iterator\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/training/saver.py\u001b[0m in \u001b[0;36mimport_meta_graph\u001b[0;34m(meta_graph_or_file, clear_devices, import_scope, **kwargs)\u001b[0m\n\u001b[1;32m 1929\u001b[0m \"execution is enabled.\")\n\u001b[1;32m 1930\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmeta_graph_or_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmeta_graph_pb2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMetaGraphDef\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1931\u001b[0;31m \u001b[0mmeta_graph_def\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmeta_graph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_meta_graph_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmeta_graph_or_file\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1932\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1933\u001b[0m \u001b[0mmeta_graph_def\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmeta_graph_or_file\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/envs/croptype/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py\u001b[0m in \u001b[0;36mread_meta_graph_file\u001b[0;34m(filename)\u001b[0m\n\u001b[1;32m 631\u001b[0m \u001b[0mmeta_graph_def\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmeta_graph_pb2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMetaGraphDef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 632\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mfile_io\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfile_exists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 633\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mIOError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"File %s does not exist.\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 634\u001b[0m \u001b[0;31m# First try to read it as a binary file.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 635\u001b[0m \u001b[0mfile_content\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfile_io\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFileIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"rb\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: File /home/roserustowicz/MTLCC-tf-fork/tmp_africa/convgru128/graph.meta does not exist." ] } ], "source": [ "# define the network to be loaded\n", "# if not yet created, make one with python modelzoo/seqencoder.py script, as described in the readme.md\n", - "graph=\"tmp_africa/convgru128/graph.meta\"\n", + "graph=\"/home/roserustowicz/MTLCC-tf-fork/tmp_africa/convgru128/graph.meta\"\n", "\n", "with tf.Session() as sess:\n", "\n", diff --git a/modelzoo/seqencmodel.py b/modelzoo/seqencmodel.py index 622110f..bbd1376 100644 --- a/modelzoo/seqencmodel.py +++ b/modelzoo/seqencmodel.py @@ -22,7 +22,8 @@ tf.app.flags.DEFINE_string("classkernel", "(3,3)", "kernelsize of final classification convolution") tf.app.flags.DEFINE_string("cnn_activation", "leaky_relu", "activation function for convolutional layers ('relu' or 'leaky_relu' [default])") -tf.app.flags.DEFINE_boolean("bidirectional", True, "Bidirectional Convolutional RNN") +#tf.app.flags.DEFINE_boolean("bidirectional", True, "Bidirectional Convolutional RNN") +tf.app.flags.DEFINE_boolean("bidirectional", False, "Bidirectional Convolutional RNN") tf.app.flags.DEFINE_integer("convrnn_compression_filters", -1, "number of convrnn compression filters or (default) -1 for no compression") tf.app.flags.DEFINE_string("convcell", "gru", "Convolutional RNN cell architecture ('gru' (default) or 'lstm')") tf.app.flags.DEFINE_string("convrnn_kernel", "(3,3)", "kernelsize of recurrent convolution. default (3,3)") @@ -42,7 +43,7 @@ ## expected data format ## tf.app.flags.DEFINE_string("expected_datatypes", "(tf.float32, tf.float32, tf.float32, tf.int64)", "expected datatypes") -tf.app.flags.DEFINE_integer("pix10m", 64, "number of 10m pixels") +tf.app.flags.DEFINE_integer("pix10m", 24, "number of 10m pixels") tf.app.flags.DEFINE_integer("num_bands_10m", 10, "number of bands in 10 meter resolution (4)") tf.app.flags.DEFINE_integer("num_classes", 4, "number of classes not counting unknown class -> e.g. 0:uk,1:a,2:b,3:c,4:d -> num_classes 4") @@ -90,7 +91,7 @@ def build_graph(self, modelpath=None): b,w,h,d = self.logits.get_shape() # take first label -> assume labels do not change over timeseries - first_labelmap = alllabels # we only have one + first_labelmap = alllabels[:,0] # create one-hot labelmap from 0-num_classes labels = tf.one_hot(first_labelmap, self.num_classes+1) @@ -183,6 +184,7 @@ def resize(tensor, new_height, new_width): h = tf.shape(tensor)[2] w = tf.shape(tensor)[3] d = tf.shape(tensor)[4] + print('b: {}, t: {}, h: {}, w: {}, d: {}'.format(b, t, h, w, d)) # stack batch on times to fit 4D requirement of resize_tensor stacked_tensor = tf.reshape(tensor, [b * t, h, w, d]) @@ -197,7 +199,7 @@ def expand3x(vector): return vector with tf.name_scope("reshaped"): - + print(self.x10.shape) b = tf.shape(self.x10)[0] t = tf.shape(self.x10)[1] px = tf.shape(self.x10)[2] @@ -210,6 +212,9 @@ def expand3x(vector): doymat = tf.multiply(expand3x(self.doy), tf.ones((b,t,px,px,1)),name="doy") yearmat = self.yearmat = tf.multiply(expand3x(self.year), tf.ones((b, t, px, px, 1)),name="year") + print(tf.shape(doymat)) + print(tf.shape(yearmat)) + #x = tf.concat((self.x10,x20,x60,doymat,yearmat),axis=-1,name="x") x = tf.concat((self.x10,doymat,yearmat),axis=-1,name="x") tf.add_to_collection(ADVANCED_SUMMARY_COLLECTION_NAME, x) diff --git a/train.py b/train.py index 403a2a7..9a8960e 100644 --- a/train.py +++ b/train.py @@ -23,6 +23,8 @@ def main(args): + tf.reset_default_graph() + if args.verbose: print "setting visible GPU {}".format(args.gpu) os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152 os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu @@ -51,7 +53,7 @@ def setupDatasets(args): datasets_dict=dict() - for section in ['2016','2017']: + for section in ['2017']: datasets_dict[section]=dict() dataset = Dataset(datadir=args.datadir, verbose=True, temporal_samples=args.temporal_samples, section=section) for partition in [TRAINING_IDS_IDENTIFIER, TESTING_IDS_IDENTIFIER]: @@ -67,7 +69,7 @@ def setupDatasets(args): datasets_dict[section][partition]["iterator"]=iterator datasets_dict[section][partition]["filenames"]=filenames #dataset_list.append({'sec':section,'id':identifier,'iterator':iterator,'filenames':filenames}) - + print('datasets_dict: ', datasets_dict) return datasets_dict @@ -97,6 +99,7 @@ def train(args, datasets): _ = tf.train.import_meta_graph(graph) def get_operation(name): + print('get operation: ', name, tf.get_default_graph().get_operation_by_name(name).outputs[0]) return tf.get_default_graph().get_operation_by_name(name).outputs[0] iterator_handle_op = get_operation("data_iterator_handle") @@ -147,7 +150,8 @@ def save(saver, step, sess, checkpoint): checkpoint = os.path.join(args.modeldir, MODEL_CHECKPOINT_NAME) - config = tf.ConfigProto() + #config = tf.ConfigProto() + config = tf.ConfigProto(use_per_session_threads=True) config.gpu_options.allow_growth = args.allow_growth with tf.Session(config=config) as sess: sess.run([tf.global_variables_initializer(), tf.local_variables_initializer(), tf.tables_initializer()]) @@ -177,36 +181,43 @@ def save(saver, step, sess, checkpoint): step, samples = sess.run([global_step_op, samples_seen_op]) current_epoch = samples / float(num_samples) while current_epoch <= args.epochs: - try: + #try: - for dataset in args.train_on: - # normal training operation - print "{} {} training step {}...".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),dataset, step) + for dataset in args.train_on: + # normal training operation + print "{} {} training step {}...".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),dataset, step) - feed_dict = {iterator_handle_op: datasets[dataset]["train"]["handle"], is_train_op: True} - if args.learning_rate is not None: - feed_dict[learning_rate_op] = args.learning_rate + feed_dict = {iterator_handle_op: datasets[dataset]["train"]["handle"], is_train_op: True} + print('checkpoint0') + if args.learning_rate is not None: + feed_dict[learning_rate_op] = args.learning_rate - sess.run(train_op, feed_dict=feed_dict) + print('checkpoint1') + sess.run(train_op, feed_dict=feed_dict) + print('checkpoint2') - # write summary - if step % args.summary_frequency == 0: - current_epoch = write_summaries(sess, datasets) + # write summary + if step % args.summary_frequency == 0: + current_epoch = write_summaries(sess, datasets) + print('checkpoint3') - # write checkpoint - if step % args.save_frequency == 0: - save(saver, step, sess, checkpoint) - # print "saving to " + checkpoint - # saver.save(sess, checkpoint, global_step=step) + print('checkpoint4') + # write checkpoint + if step % args.save_frequency == 0: + save(saver, step, sess, checkpoint) + print('checkpoint5') + # print "saving to " + checkpoint + # saver.save(sess, checkpoint, global_step=step) - step += 1 # keep local step counter + print('checkpoint6') + step += 1 # keep local step counter - except KeyboardInterrupt: - print "Training aborted at step {}".format(step) - break + #except KeyboardInterrupt: + # print "Training aborted at step {}".format(step) + # break # if loop ends or any caught exception write_summaries(sess, datasets) @@ -222,7 +233,7 @@ def save(saver, step, sess, checkpoint): help='directory containing the data (defaults to environment variable $datadir)') parser.add_argument('-g', '--gpu', type=str, default="0", help='GPU') parser.add_argument('-d','--train_on', type=str, default="2016",nargs='+', help='Dataset partition to train on. Datasets are defined as sections in dataset.ini in datadir') - parser.add_argument('-b', '--batchsize', type=int, default=16, help='batchsize') + parser.add_argument('-b', '--batchsize', type=int, default=2, help='batchsize') parser.add_argument('-v', '--verbose', action="store_true", help='verbosity') # parser.add_argument('-o', '--overwrite', action="store_true", help='overwrite graph. may lead to problems with checkpoints compatibility') parser.add_argument('-s', '--shuffle', type=bool, default=True, help="batch shuffling") From c6d84f180af458803c7e3e5100c0136b2a78816c Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Wed, 20 Feb 2019 21:26:33 +0000 Subject: [PATCH 05/13] v1 of softmax with logits? --- modelzoo/seqencmodel.py | 6 +++--- train.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modelzoo/seqencmodel.py b/modelzoo/seqencmodel.py index bbd1376..356b914 100644 --- a/modelzoo/seqencmodel.py +++ b/modelzoo/seqencmodel.py @@ -22,8 +22,7 @@ tf.app.flags.DEFINE_string("classkernel", "(3,3)", "kernelsize of final classification convolution") tf.app.flags.DEFINE_string("cnn_activation", "leaky_relu", "activation function for convolutional layers ('relu' or 'leaky_relu' [default])") -#tf.app.flags.DEFINE_boolean("bidirectional", True, "Bidirectional Convolutional RNN") -tf.app.flags.DEFINE_boolean("bidirectional", False, "Bidirectional Convolutional RNN") +tf.app.flags.DEFINE_boolean("bidirectional", True, "Bidirectional Convolutional RNN") tf.app.flags.DEFINE_integer("convrnn_compression_filters", -1, "number of convrnn compression filters or (default) -1 for no compression") tf.app.flags.DEFINE_string("convcell", "gru", "Convolutional RNN cell architecture ('gru' (default) or 'lstm')") tf.app.flags.DEFINE_string("convrnn_kernel", "(3,3)", "kernelsize of recurrent convolution. default (3,3)") @@ -289,7 +288,8 @@ def inference(self,input): def loss(self, logits, labels,mask,name): - loss_per_px = tf.nn.softmax_cross_entropy_with_logits_v2(labels=labels, logits=logits) + #loss_per_px = tf.nn.softmax_cross_entropy_with_logits_v2(labels=labels, logits=logits) + loss_per_px = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits) #loss_per_px = tf.boolean_mask(loss_per_px, unknown_mask, name="masked_loss_per_px") _ = tf.identity(loss_per_px,name="loss_per_px") diff --git a/train.py b/train.py index 9a8960e..fae4eca 100644 --- a/train.py +++ b/train.py @@ -123,7 +123,7 @@ def write_summaries(sess, datasets): for partition in datasets[dataset].keys(): handle = datasets[dataset][partition]["handle"] writer = datasets[dataset][partition]["writer"] - print('handle: ', handle.shape, handle) + #print('handle: ', handle.shape, handle) ops = [tf.summary.merge_all(), cross_entropy_op, overall_accuracy_op] sum, xe, oa = sess.run(ops, feed_dict={iterator_handle_op: handle, is_train_op: True}) writer.add_summary(sum, samples) From f81d22027c533ff0dc86d4b05c40004e0e2880c5 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Wed, 20 Feb 2019 23:22:47 +0000 Subject: [PATCH 06/13] edit for custom image --- Dockerfile | 3 +- S2parser_africa.py | 180 ++++++++++++++++++++++++++++++++++++++++ modelzoo/seqencmodel.py | 3 +- train.py | 12 +-- 4 files changed, 189 insertions(+), 9 deletions(-) create mode 100644 S2parser_africa.py diff --git a/Dockerfile b/Dockerfile index 2a9891e..ef291be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM tensorflow/tensorflow:1.4.0-gpu +FROM tensorflow/tensorflow:1.12.0-gpu +#FROM tensorflow/tensorflow:1.4.0-gpu LABEL maintainer="Marc Rußwurm " diff --git a/S2parser_africa.py b/S2parser_africa.py new file mode 100644 index 0000000..4240e21 --- /dev/null +++ b/S2parser_africa.py @@ -0,0 +1,180 @@ +import tensorflow as tf +import numpy as np +import sys +import os + +class S2parser(): + """ defined the Sentinel 2 .tfrecord format """ + def __init__(self): + + self.feature_format= { + 'x10/data': tf.FixedLenFeature([], tf.string), + 'x10/shape': tf.FixedLenFeature([4], tf.int64), + 'dates/doy': tf.FixedLenFeature([], tf.string), + 'dates/year': tf.FixedLenFeature([], tf.string), + 'dates/shape': tf.FixedLenFeature([1], tf.int64), + 'labels/data': tf.FixedLenFeature([], tf.string), + 'labels/shape': tf.FixedLenFeature([3], tf.int64) + } + + return None + + def write(self, filename, x10, doy, year, labels): + # https://stackoverflow.com/questions/39524323/tf-sequenceexample-with-multidimensional-arrays + + writer = tf.python_io.TFRecordWriter(filename) + + x10=x10.astype(np.int64) + doy=doy.astype(np.int64) + year=year.astype(np.int64) + labels=labels.astype(np.int64) + + # Create a write feature + feature={ + 'x10/data' : tf.train.Feature(bytes_list=tf.train.BytesList(value=[x10.tobytes()])), + 'x10/shape': tf.train.Feature(int64_list=tf.train.Int64List(value=x10.shape)), + 'labels/data': tf.train.Feature(bytes_list=tf.train.BytesList(value=[labels.tobytes()])), + 'labels/shape': tf.train.Feature(int64_list=tf.train.Int64List(value=labels.shape)), + 'dates/doy': tf.train.Feature(bytes_list=tf.train.BytesList(value=[doy.tobytes()])), + 'dates/year': tf.train.Feature(bytes_list=tf.train.BytesList(value=[year.tobytes()])), + 'dates/shape': tf.train.Feature(int64_list=tf.train.Int64List(value=doy.shape)) + } + + + example = tf.train.Example(features=tf.train.Features(feature=feature)) + + writer.write(example.SerializeToString()) + + writer.close() + sys.stdout.flush() + + def get_shapes(self, sample): + print("reading shape of data using the sample "+sample) + data = self.read_and_return(sample) + return [tensor.shape for tensor in data] + + def parse_example(self,serialized_example): + """ + example proto can be obtained via + filename_queue = tf.train.string_input_producer(filenames, num_epochs=None) + or by passing this function in dataset.map(.) + """ + + feature = tf.parse_single_example(serialized_example, self.feature_format) + # decode and reshape x10 + x10 = tf.reshape(tf.decode_raw(feature['x10/data'], tf.int64),tf.cast(feature['x10/shape'], tf.int32)) + + doy = tf.reshape(tf.decode_raw(feature['dates/doy'], tf.int64), tf.cast(feature['dates/shape'], tf.int32)) + year = tf.reshape(tf.decode_raw(feature['dates/year'], tf.int64), tf.cast(feature['dates/shape'], tf.int32)) + + labels = tf.reshape(tf.decode_raw(feature['labels/data'], tf.int64), tf.cast(feature['labels/shape'], tf.int32)) + + return x10, doy, year, labels + + def read(self,filenames): + """ depricated! """ + + if isinstance(filenames,list): + filename_queue = tf.train.string_input_producer(filenames, num_epochs=None) + elif isinstance(filenames,tf.FIFOQueue): + filename_queue = filenames + else: + print("please insert either list or tf.FIFOQueue") + + reader = tf.TFRecordReader() + f, serialized_example = reader.read(filename_queue) + + print(f) + + feature = tf.parse_single_example(serialized_example, features=self.feature_format) + + # decode and reshape x10 + x10 = tf.reshape(tf.decode_raw(feature['x10/data'], tf.int64),tf.cast(feature['x10/shape'], tf.int32)) + + doy = tf.reshape(tf.decode_raw(feature['dates/doy'], tf.int64), tf.cast(feature['dates/shape'], tf.int32)) + year = tf.reshape(tf.decode_raw(feature['dates/year'], tf.int64), tf.cast(feature['dates/shape'], tf.int32)) + + labels = tf.reshape(tf.decode_raw(feature['labels/data'], tf.int64), tf.cast(feature['labels/shape'], tf.int32)) + + return x10, doy, year, labels + + def tfrecord_to_pickle(self,tfrecordname,picklename): + import cPickle as pickle + + reader = tf.TFRecordReader() + + # read serialized representation of *.tfrecord + filename_queue = tf.train.string_input_producer([tfrecordname], num_epochs=None) + filename_op, serialized_example = reader.read(filename_queue) + feature = self.parse_example(serialized_example) + + with tf.Session() as sess: + sess.run([tf.global_variables_initializer(), tf.local_variables_initializer()]) + + coord = tf.train.Coordinator() + threads = tf.train.start_queue_runners(coord=coord) + + feature = sess.run(feature) + + coord.request_stop() + coord.join(threads) + + pickle.dump(feature, open(picklename, "wb"), protocol=2) + + def read_and_return(self,filename): + """ depricated! """ + + # get feature operation containing + feature_op = self.read([filename]) + + with tf.Session() as sess: + + tf.global_variables_initializer() + + coord = tf.train.Coordinator() + threads = tf.train.start_queue_runners(coord=coord) + + return sess.run(feature_op) + +def test(): + print("Running self test:") + print("temporary tfrecord file is written with random numbers") + print("tfrecord file is read back") + print("contents are compared") + + filename="tmptile.tfrecord" + + # create dummy dataset + x10 = (np.random.rand(6,48,48,6)*1e3).astype(np.int64) + labels = (np.random.rand(6,24,24)*1e3).astype(np.int64) + doy = (np.random.rand(6)*1e3).astype(np.int64) + year = (np.random.rand(6)*1e3).astype(np.int64) + + # init parser + parser=S2parser() + + parser.write(filename, x10, doy, year, labels) + + x10_, doy_, year_, labels_ = read_and_return(filename) + + # test if wrote and read data is the same + print("TEST") + if np.all(x10_==x10) and np.all(labels_==labels) and np.all(doy_==doy) and np.all(year_==year): + print("PASSED") + else: + print("NOT PASSED") + + + # remove file + os.remove(filename) + + #return tf.reshape(x10, (1,48,48,6)) + #return feature['x10shape'] + +if __name__=='__main__': + #test() + + #x10, x20, x60, doy, year, labels = read_and_return("data/bavaria/1.tfrecord") + parser = S2parser() + + parser.tfrecord_to_pickle("1.tfrecord","1.pkl") diff --git a/modelzoo/seqencmodel.py b/modelzoo/seqencmodel.py index 356b914..f969ec4 100644 --- a/modelzoo/seqencmodel.py +++ b/modelzoo/seqencmodel.py @@ -288,8 +288,7 @@ def inference(self,input): def loss(self, logits, labels,mask,name): - #loss_per_px = tf.nn.softmax_cross_entropy_with_logits_v2(labels=labels, logits=logits) - loss_per_px = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits) + loss_per_px = tf.nn.softmax_cross_entropy_with_logits_v2(labels=labels, logits=logits) #loss_per_px = tf.boolean_mask(loss_per_px, unknown_mask, name="masked_loss_per_px") _ = tf.identity(loss_per_px,name="loss_per_px") diff --git a/train.py b/train.py index fae4eca..cbd9e83 100644 --- a/train.py +++ b/train.py @@ -25,7 +25,7 @@ def main(args): tf.reset_default_graph() - if args.verbose: print "setting visible GPU {}".format(args.gpu) + if args.verbose: print("setting visible GPU {}".format(args.gpu)) os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152 os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu @@ -94,7 +94,7 @@ def train(args, datasets): graph = os.path.join(args.modeldir, MODEL_GRAPH_NAME) if not graph_created_flag: - if args.verbose: print "importing graph from {}".format(graph) + if args.verbose: print("importing graph from {}".format(graph)) dir(tf.contrib) # see https://github.com/tensorflow/tensorflow/issues/10130 _ = tf.train.import_meta_graph(graph) @@ -143,7 +143,7 @@ def write_summaries(sess, datasets): def save(saver, step, sess, checkpoint): saver.save(sess, checkpoint, global_step=step) - print "saving checkpoint step {}".format(step) + print("saving checkpoint step {}".format(step)) saver = tf.train.Saver(max_to_keep=args.max_models_to_keep, keep_checkpoint_every_n_hours=args.save_every_n_hours, save_relative_paths=True) @@ -170,12 +170,12 @@ def save(saver, step, sess, checkpoint): writer = tf.summary.FileWriter(os.path.join(args.modeldir, summaryname), sess.graph) datasets[dataset][partition]["writer"] = writer - print "initializing dataset {}, partition {}".format(dataset,partition) + print("initializing dataset {}, partition {}".format(dataset,partition)) sess.run([iterator.initializer]) latest_ckpt = tf.train.latest_checkpoint(args.modeldir) if latest_ckpt is not None: - print "restoring from " + latest_ckpt + print("restoring from " + latest_ckpt) saver.restore(sess, latest_ckpt) step, samples = sess.run([global_step_op, samples_seen_op]) @@ -185,7 +185,7 @@ def save(saver, step, sess, checkpoint): for dataset in args.train_on: # normal training operation - print "{} {} training step {}...".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),dataset, step) + print("{} {} training step {}...".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),dataset, step)) feed_dict = {iterator_handle_op: datasets[dataset]["train"]["handle"], is_train_op: True} print('checkpoint0') From 7c14cad5477d229e0ccb648895207077738cdfa5 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Thu, 21 Feb 2019 00:54:31 +0000 Subject: [PATCH 07/13] add lines from https://github.com/tensorflow/tensorflow/issues/24828 --- train.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/train.py b/train.py index cbd9e83..e8785e4 100644 --- a/train.py +++ b/train.py @@ -5,6 +5,8 @@ import datetime import pdb +from tensorflow.compat.v1 import ConfigProto + MODEL_GRAPH_NAME = "graph.meta" TRAINING_IDS_IDENTIFIER = "train" TESTING_IDS_IDENTIFIER = "test" @@ -150,8 +152,8 @@ def save(saver, step, sess, checkpoint): checkpoint = os.path.join(args.modeldir, MODEL_CHECKPOINT_NAME) - #config = tf.ConfigProto() - config = tf.ConfigProto(use_per_session_threads=True) + config = ConfigProto() + #config = tf.ConfigProto(use_per_session_threads=True) config.gpu_options.allow_growth = args.allow_growth with tf.Session(config=config) as sess: sess.run([tf.global_variables_initializer(), tf.local_variables_initializer(), tf.tables_initializer()]) @@ -251,7 +253,7 @@ def save(saver, step, sess, checkpoint): help="overwrite learning rate. Required placeholder named 'learning_rate' in model") parser.add_argument('--save_every_n_hours', type=int, default=1, help="save checkpoint every n hours") parser.add_argument('--queue_capacity', type=int, default=256, help="Capacity of queue") - parser.add_argument('--allow_growth', type=bool, default=False, help="Allow dynamic VRAM growth of TF") + parser.add_argument('--allow_growth', type=bool, default=True, help="Allow dynamic VRAM growth of TF") parser.add_argument('--limit_batches', type=int, default=-1, help="artificially reduce number of batches to encourage overfitting (for debugging)") From 20305361628f3438fe8e42440324723898e5d2cd Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Thu, 21 Feb 2019 07:07:12 +0000 Subject: [PATCH 08/13] edit train --- train.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/train.py b/train.py index e8785e4..24d3b7c 100644 --- a/train.py +++ b/train.py @@ -5,7 +5,7 @@ import datetime import pdb -from tensorflow.compat.v1 import ConfigProto +from tensorflow import ConfigProto MODEL_GRAPH_NAME = "graph.meta" TRAINING_IDS_IDENTIFIER = "train" From 83e65ec3681444dc57b1ac2886d738453d6a7f43 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Fri, 22 Feb 2019 00:11:14 +0000 Subject: [PATCH 09/13] rm debug prints, generate inputs --- Dataset.py | 11 ++++++----- scripts/tileids_from_splits.py | 26 ++++++++++++++++++++++++++ train.py | 12 ++---------- 3 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 scripts/tileids_from_splits.py diff --git a/Dataset.py b/Dataset.py index 48c5b3c..0a14ecb 100644 --- a/Dataset.py +++ b/Dataset.py @@ -8,7 +8,7 @@ class Dataset(): """ A wrapper class around Tensorflow Dataset api handling data normalization and augmentation """ - def __init__(self, datadir, verbose=False, temporal_samples=None, section="dataset", augment=False): + def __init__(self, datadir, verbose=False, temporal_samples=None, section="dataset", augment=False, country=None): self.verbose = verbose self.augment = augment @@ -76,7 +76,11 @@ def __init__(self, datadir, verbose=False, temporal_samples=None, section="datas datacfg.read(cfgpath) cfg = datacfg[section] - self.tileidfolder = os.path.join(dataroot, "tileids") + self.country = country + if self.country is None: + self.tileidfolder = os.path.join(dataroot, "tileids") + else: + self.tileidfolder = os.path.join(dataroot, "tileids/" + self.country + "/tileids") self.datadir = os.path.join(dataroot, cfg["datadir"]) assert 'pix10' in cfg.keys() @@ -220,8 +224,6 @@ def create_tf_dataset(self, partition, fold, batchsize, shuffle, prefetch_batche # set of ids present in local folder (e.g. 1.tfrecord) tiles = os.listdir(self.datadir) - #print('tiles: ', tiles) - #print('dataadir: ', self.datadir) if tiles[0].endswith(".gz"): compression = "GZIP" ext = ".tfrecord.gz" @@ -230,7 +232,6 @@ def create_tf_dataset(self, partition, fold, batchsize, shuffle, prefetch_batche ext = ".tfrecord" downloaded_ids = [t.replace(".gz", "").replace(".tfrecord", "") for t in tiles] - #downloaded_ids = [int(t.replace(".gz", "").replace(".tfrecord", "")) for t in tiles] # intersection of available ids and partition ods if overwrite_ids is None: diff --git a/scripts/tileids_from_splits.py b/scripts/tileids_from_splits.py new file mode 100644 index 0000000..444cdb7 --- /dev/null +++ b/scripts/tileids_from_splits.py @@ -0,0 +1,26 @@ +""" +Generate tileids (input to german-based model) from +data splits (input to our model) +""" +import os +import pickle + +country = 'ghana' +setsize = 'full' +splits = ['train', 'val', 'test'] +tile_dir = '/home/roserustowicz/MTLCC-all/africa/tileids/ghana' + +for split in splits: + cur_file = '_'.join([country, setsize, split]) + print('cur file: ', cur_file) + with open(os.path.join(tile_dir, cur_file), "rb") as f: + inlist = list(pickle.load(f)) + print(inlist) + outfname = os.path.join(tile_dir, cur_file + '.tileids') + with open(outfname, 'w') as outf: + for item in inlist: + for append_i in range(9): + cur_item = item + str(append_i) + outf.write("%s\n" % cur_item) + + diff --git a/train.py b/train.py index 24d3b7c..f17008c 100644 --- a/train.py +++ b/train.py @@ -57,7 +57,7 @@ def setupDatasets(args): datasets_dict=dict() for section in ['2017']: datasets_dict[section]=dict() - dataset = Dataset(datadir=args.datadir, verbose=True, temporal_samples=args.temporal_samples, section=section) + dataset = Dataset(datadir=args.datadir, verbose=True, temporal_samples=args.temporal_samples, section=section, country=args.country) for partition in [TRAINING_IDS_IDENTIFIER, TESTING_IDS_IDENTIFIER]: datasets_dict[section][partition] = dict() tfdataset, _, _, filenames = dataset.create_tf_dataset(partition, @@ -71,7 +71,6 @@ def setupDatasets(args): datasets_dict[section][partition]["iterator"]=iterator datasets_dict[section][partition]["filenames"]=filenames #dataset_list.append({'sec':section,'id':identifier,'iterator':iterator,'filenames':filenames}) - print('datasets_dict: ', datasets_dict) return datasets_dict @@ -190,29 +189,21 @@ def save(saver, step, sess, checkpoint): print("{} {} training step {}...".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),dataset, step)) feed_dict = {iterator_handle_op: datasets[dataset]["train"]["handle"], is_train_op: True} - print('checkpoint0') if args.learning_rate is not None: feed_dict[learning_rate_op] = args.learning_rate - print('checkpoint1') sess.run(train_op, feed_dict=feed_dict) - print('checkpoint2') - # write summary if step % args.summary_frequency == 0: current_epoch = write_summaries(sess, datasets) - print('checkpoint3') - print('checkpoint4') # write checkpoint if step % args.save_frequency == 0: save(saver, step, sess, checkpoint) - print('checkpoint5') # print "saving to " + checkpoint # saver.save(sess, checkpoint, global_step=step) - print('checkpoint6') step += 1 # keep local step counter @@ -256,6 +247,7 @@ def save(saver, step, sess, checkpoint): parser.add_argument('--allow_growth', type=bool, default=True, help="Allow dynamic VRAM growth of TF") parser.add_argument('--limit_batches', type=int, default=-1, help="artificially reduce number of batches to encourage overfitting (for debugging)") + parser.add_argument('--country', type=str, default=None, help="Country to use for data input") args = parser.parse_args() From 7f35728566232d7972950855fb68e3e1bfd93a6b Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Fri, 22 Feb 2019 00:42:57 +0000 Subject: [PATCH 10/13] normalization --- Dataset.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Dataset.py b/Dataset.py index 0a14ecb..9a9eb28 100644 --- a/Dataset.py +++ b/Dataset.py @@ -124,14 +124,20 @@ def transform_labels(self,feature): return x10, doy, year, labels def normalize(self, feature): - + """ + Normalizes between 0 and 1. + """ x10, doy, year, labels = feature - x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32)) - + doy = tf.cast(doy, tf.float32) / 365 - # year = (2016 - tf.cast(year, tf.float32)) / 2017 year = tf.cast(year, tf.float32) - 2016 + + if self.country == 'ghana': + + x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32)) + + return x10, doy, year, labels From 5146984f25bf180493334df454242e6e73440887 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Fri, 22 Feb 2019 00:53:20 +0000 Subject: [PATCH 11/13] normalization for ghana, ssudan --- Dataset.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Dataset.py b/Dataset.py index 9a9eb28..a2b4098 100644 --- a/Dataset.py +++ b/Dataset.py @@ -133,11 +133,21 @@ def normalize(self, feature): # year = (2016 - tf.cast(year, tf.float32)) / 2017 year = tf.cast(year, tf.float32) - 2016 - if self.country == 'ghana': + if self.country in ['ghana', 'southsudan']: + S2_BAND_MEANS = { 'ghana': np.array([2620.00, 2519.89, 2630.31, 2739.81, 3225.22, 3562.64, 3356.57, 3788.05, 2915.40, 2102.65]), + 'southsudan': np.array([2119.15, 2061.95, 2127.71, 2277.60, 2784.21, 3088.40, 2939.33, 3308.03, 2597.14, 1834.81]) } - x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32)) + S2_BAND_STDS = { 'ghana': np.array([2171.62, 2085.69, 2174.37, 2084.56, 2058.97, 2117.31, 1988.70, 2099.78, 1209.48, 918.19]), + 'southsudan': np.array([2113.41, 2026.64, 2126.10, 2093.35, 2066.81, 2114.85, 2049.70, 2111.51, 1320.97, 1029.58]) } + band_means = S2_BAND_MEANS[country] + band_stds = S2_BAND_STDS[country] + x10 = tf.cast(x10, tf.float32) + x10 = tf.divide( tf.subtract( x10, tf.reshape(band_means, shape=[-1, 1, 1, 1]) ), tf.reshape(band_stds, shape=[-1, 1, 1, 1]) ) + + else: + x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32)) return x10, doy, year, labels From 8f12c08b5e9c089d284ce3cb2f451782dc886680 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Fri, 22 Feb 2019 01:02:16 +0000 Subject: [PATCH 12/13] clean up --- Dataset.py | 14 +++++++------- train.py | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Dataset.py b/Dataset.py index a2b4098..5e4a9b0 100644 --- a/Dataset.py +++ b/Dataset.py @@ -134,17 +134,17 @@ def normalize(self, feature): year = tf.cast(year, tf.float32) - 2016 if self.country in ['ghana', 'southsudan']: - S2_BAND_MEANS = { 'ghana': np.array([2620.00, 2519.89, 2630.31, 2739.81, 3225.22, 3562.64, 3356.57, 3788.05, 2915.40, 2102.65]), - 'southsudan': np.array([2119.15, 2061.95, 2127.71, 2277.60, 2784.21, 3088.40, 2939.33, 3308.03, 2597.14, 1834.81]) } + S2_BAND_MEANS = { 'ghana': tf.constant([2620.00, 2519.89, 2630.31, 2739.81, 3225.22, 3562.64, 3356.57, 3788.05, 2915.40, 2102.65]), + 'southsudan': tf.constant([2119.15, 2061.95, 2127.71, 2277.60, 2784.21, 3088.40, 2939.33, 3308.03, 2597.14, 1834.81]) } - S2_BAND_STDS = { 'ghana': np.array([2171.62, 2085.69, 2174.37, 2084.56, 2058.97, 2117.31, 1988.70, 2099.78, 1209.48, 918.19]), - 'southsudan': np.array([2113.41, 2026.64, 2126.10, 2093.35, 2066.81, 2114.85, 2049.70, 2111.51, 1320.97, 1029.58]) } + S2_BAND_STDS = { 'ghana': tf.constant([2171.62, 2085.69, 2174.37, 2084.56, 2058.97, 2117.31, 1988.70, 2099.78, 1209.48, 918.19]), + 'southsudan': tf.constant([2113.41, 2026.64, 2126.10, 2093.35, 2066.81, 2114.85, 2049.70, 2111.51, 1320.97, 1029.58]) } - band_means = S2_BAND_MEANS[country] - band_stds = S2_BAND_STDS[country] + band_means = S2_BAND_MEANS[self.country] + band_stds = S2_BAND_STDS[self.country] x10 = tf.cast(x10, tf.float32) - x10 = tf.divide( tf.subtract( x10, tf.reshape(band_means, shape=[-1, 1, 1, 1]) ), tf.reshape(band_stds, shape=[-1, 1, 1, 1]) ) + x10 = tf.divide( tf.subtract( x10, tf.reshape(band_means, shape=[1, 1, 1, -1]) ), tf.reshape(band_stds, shape=[1, 1, 1, -1]) ) else: x10 = tf.scalar_mul(1e-4, tf.cast(x10, tf.float32)) diff --git a/train.py b/train.py index f17008c..1585413 100644 --- a/train.py +++ b/train.py @@ -100,7 +100,6 @@ def train(args, datasets): _ = tf.train.import_meta_graph(graph) def get_operation(name): - print('get operation: ', name, tf.get_default_graph().get_operation_by_name(name).outputs[0]) return tf.get_default_graph().get_operation_by_name(name).outputs[0] iterator_handle_op = get_operation("data_iterator_handle") From dbec8e080bd1b37fa805048e80cdf21971ca1b67 Mon Sep 17 00:00:00 2001 From: roserustowicz Date: Mon, 11 Mar 2019 21:22:14 +0000 Subject: [PATCH 13/13] edit for ourdataset --- Dataset.py | 17 +++++++++++++---- scripts/tileids_from_splits.py | 13 ++++++++++--- train.py | 2 +- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Dataset.py b/Dataset.py index 5e4a9b0..ef4af8b 100644 --- a/Dataset.py +++ b/Dataset.py @@ -53,6 +53,7 @@ def __init__(self, datadir, verbose=False, temporal_samples=None, section="datas id,cl = row.split('|') self.ids.append(int(id)) self.classes.append(cl) + print('classes: ', self.classes) ## create a lookup table to map labelids to dimension ids @@ -106,6 +107,11 @@ def calc_expected_shapes(self, pix10, nobs, bands10): yearshape = (nobs,) labelshape = (nobs, pix10, pix10) + print('x10shape: ', x10shape) + print('doyshape: ', doyshape) + print('yearshape: ', yearshape) + print('labelshape: ', labelshape) + return [x10shape, doyshape, yearshape, labelshape] def transform_labels(self,feature): @@ -119,6 +125,7 @@ def transform_labels(self,feature): # take first label time [46,24,24] -> [24,24] # labels are not supposed to change over the time series #labels = labels[0] + #print('unique_labels: ', tf.unique(tf.stack(tf.reshape(labels, -1)))) labels = self.id_lookup_table.lookup(labels) return x10, doy, year, labels @@ -133,12 +140,14 @@ def normalize(self, feature): # year = (2016 - tf.cast(year, tf.float32)) / 2017 year = tf.cast(year, tf.float32) - 2016 - if self.country in ['ghana', 'southsudan']: + if self.country in ['ghana', 'southsudan', 'germany']: S2_BAND_MEANS = { 'ghana': tf.constant([2620.00, 2519.89, 2630.31, 2739.81, 3225.22, 3562.64, 3356.57, 3788.05, 2915.40, 2102.65]), - 'southsudan': tf.constant([2119.15, 2061.95, 2127.71, 2277.60, 2784.21, 3088.40, 2939.33, 3308.03, 2597.14, 1834.81]) } + 'southsudan': tf.constant([2119.15, 2061.95, 2127.71, 2277.60, 2784.21, 3088.40, 2939.33, 3308.03, 2597.14, 1834.81]), + 'germany': tf.constant([1991.37, 2026.92, 2136.22, 6844.82, 9951.98, 11638.58, 3664.66, 12375.27, 7351.99, 5027.96, 0., 0., 0.])} S2_BAND_STDS = { 'ghana': tf.constant([2171.62, 2085.69, 2174.37, 2084.56, 2058.97, 2117.31, 1988.70, 2099.78, 1209.48, 918.19]), - 'southsudan': tf.constant([2113.41, 2026.64, 2126.10, 2093.35, 2066.81, 2114.85, 2049.70, 2111.51, 1320.97, 1029.58]) } + 'southsudan': tf.constant([2113.41, 2026.64, 2126.10, 2093.35, 2066.81, 2114.85, 2049.70, 2111.51, 1320.97, 1029.58]), + 'germany': tf.constant([1943.62, 1755.82, 1841.09, 5703.38, 5104.90, 5136.54, 1663.27, 5125.05, 3682.57, 3273.71, 10000., 10000., 10000.])} band_means = S2_BAND_MEANS[self.country] band_stds = S2_BAND_STDS[self.country] @@ -200,7 +209,7 @@ def temporal_sample(self, feature): shuffled_range = tf.random_shuffle(tf.range(max_obs))[0:n] idxs = -tf.nn.top_k(-shuffled_range, k=n).values - + print('idxs: ', idxs) x10 = tf.gather(x10, idxs) doy = tf.gather(doy, idxs) year = tf.gather(year, idxs) diff --git a/scripts/tileids_from_splits.py b/scripts/tileids_from_splits.py index 444cdb7..961a1bb 100644 --- a/scripts/tileids_from_splits.py +++ b/scripts/tileids_from_splits.py @@ -5,10 +5,15 @@ import os import pickle -country = 'ghana' +country = 'germany' setsize = 'full' splits = ['train', 'val', 'test'] -tile_dir = '/home/roserustowicz/MTLCC-all/africa/tileids/ghana' +tile_dir = '/home/roserustowicz/MTLCC-all/germany/tileids/' + country + +if country in ['ghana', 'southsudan', 'tanzania']: + numgrids = 9 +elif country in ['germany']: + numgrids = 4 for split in splits: cur_file = '_'.join([country, setsize, split]) @@ -19,7 +24,9 @@ outfname = os.path.join(tile_dir, cur_file + '.tileids') with open(outfname, 'w') as outf: for item in inlist: - for append_i in range(9): + item = item.zfill(6) + #print('item: ', item) + for append_i in range(numgrids): cur_item = item + str(append_i) outf.write("%s\n" % cur_item) diff --git a/train.py b/train.py index 1585413..d68d687 100644 --- a/train.py +++ b/train.py @@ -55,7 +55,7 @@ def setupDatasets(args): datasets_dict=dict() - for section in ['2017']: + for section in ['2016']: datasets_dict[section]=dict() dataset = Dataset(datadir=args.datadir, verbose=True, temporal_samples=args.temporal_samples, section=section, country=args.country) for partition in [TRAINING_IDS_IDENTIFIER, TESTING_IDS_IDENTIFIER]: