{
  "id": 406270,
  "title": "Unable to pass variable length sequence in tf model ",
  "url": "/competitions/asl-signs/discussion/406270",
  "author_name": "",
  "post_date": "2023-05-01T19:01:29.957675800Z",
  "votes": 1,
  "comment_count": 2,
  "views": 0,
  "content": "<pre><code>class FeatureGen(tf.Module):\n    def __init__(self):\n        super(FeatureGen, self).__init__()\n        self.meta_data = metaData\n        self.landMark = [0, 468, 489, 522, 543]\n        self.INPUT_SIZE = 32\n\n    def fill_nans(self,X, l, r):\n        z = X[:, l : r]\n        nan_idx, _ = tf.unique(tf.where(tf.reduce_all(tf.math.is_nan(z), axis=1))[:, 0])\n        not_nan_idx = tf.sets.difference(tf.reshape(tf.range(0, z.shape[0], dtype = tf.dtypes.int64), (1, -1)), tf.reshape(nan_idx, (1, -1))).values\n        if (nan_idx.shape[0]==None):\n            return z\n        if (nan_idx.shape[0] * 4 &gt; not_nan_idx.shape[0]):\n            indices = tf.where(tf.math.is_nan(z))\n            z = tf.tensor_scatter_nd_update(\n                z,\n                indices,\n                tf.zeros((tf.shape(indices)[0]))\n            )\n            return z\n        if nan_idx[0] == 0:\n            k,l = not_nan_idx[0],not_nan_idx[1]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[0] = a - d*k\n            not_nan_idx=tf.concat([[0], not_nan_idx], axis = 0)\n            nan_idx=nan_idx[1:]\n        if (nan_idx.shape[0] == 0):\n            return z\n        if nan_idx[-1] == z.shape[0] -1 :\n            k,l = not_nan_idx[-1],not_nan_idx[-2]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[k] - z[l]) / (k-l)\n            a = z[k]\n            z[-1] = a + d*(z.shape[0] -1 - k)\n            not_nan_idx=tf.concat([not_nan_idx,[z.shape[0]-1]], axis = 0)\n            nan_idx = nan_idx[:-1]\n        for i in nan_idx:\n            k,l = not_nan_idx[not_nan_idx&lt;i][-1],not_nan_idx[not_nan_idx&gt;i][0]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[i] = a + d*(i-k)\n        return z\n\n    def padding(self,data):\n        N_FRAMES = data.shape[0]\n        N_COLS = data.shape[1] # Number of Landmark indices i.e. 543\n        N_DIMS = data.shape[2]\n\n        if N_FRAMES &lt; self.INPUT_SIZE:\n            # Pad Data With Zeros\n            pad_size = self.INPUT_SIZE  - N_FRAMES\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n\n            # Pad By Concatenating Left/Right Edge Values\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n        else:\n            if N_FRAMES &lt; self.INPUT_SIZE**2:\n                # Repeat\n                repeats = (self.INPUT_SIZE * self.INPUT_SIZE) // N_FRAMES\n                data = tf.repeat(data, repeats=repeats, axis=0)\n            # Pad To Multiple Of Input Size\n            pool_size = len(data) // self.INPUT_SIZE + bool(len(data) % self.INPUT_SIZE)\n            pad_size = (pool_size * self.INPUT_SIZE) % len(data)\n\n            # Pad Start/End with Start/End value\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n            # Reshape to Mean Pool\n            data = tf.reshape(data, (self.INPUT_SIZE, -1, N_COLS, N_DIMS))\n            # Mean Pool\n            data = tf.experimental.numpy.nanmean(data, axis=1)\n        return data\n\n    @tf.function(input_signature=[\n      tf.TensorSpec(shape=[None, 543, 3], dtype=tf.float32, name='inputs')\n    ])\n    def call(self, x):\n        # shape -&gt; None , 543 , 3\n        for i in range(4):\n            y = self.fill_nans(x,self.landMark[i],self.landMark[i+1])\n            if i ==0:\n                output = y\n                continue\n            output = tf.concat([output,y],axis=1)\n        x = self.padding(output)\n        return x\n</code></pre>\n<pre><code>TypeError                                 Traceback (most recent call last)\n/tmp/ipykernel_27/1088593474.py in &lt;module&gt;\n----&gt; 1 model.call(x).shape\n\n/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/traceback_utils.py in error_handler(*args, **kwargs)\n    151     except Exception as e:\n    152       filtered_tb = _process_traceback_frames(e.__traceback__)\n--&gt; 153       raise e.with_traceback(filtered_tb) from None\n    154     finally:\n    155       del filtered_tb\n\n/tmp/__autograph_generated_filecbah15ng.py in tf__call(self, x)\n     59                 output = ag__.Undefined('output')\n     60                 ag__.for_stmt(ag__.converted_call(ag__.ld(range), (4,), None, fscope), None, loop_body, get_state_2, set_state_2, ('output',), {'iterate_names': 'i'})\n---&gt; 61                 x = ag__.converted_call(ag__.ld(self).padding, (ag__.ld(output),), None, fscope)\n     62                 try:\n     63                     do_return = True\n\n/tmp/__autograph_generated_filev3fkbxo7.py in tf__padding(self, data)\n     58                 pad_right = ag__.Undefined('pad_right')\n     59                 repeats = ag__.Undefined('repeats')\n---&gt; 60                 ag__.if_stmt((ag__.ld(N_FRAMES) &lt; ag__.ld(self).INPUT_SIZE), if_body_1, else_body_1, get_state_1, set_state_1, ('data',), 1)\n     61                 try:\n     62                     do_return = True\n\nTypeError: in user code:\n\n    File \"/tmp/ipykernel_27/600884451.py\", line 98, in call  *\n        x = self.padding(output)\n    File \"/tmp/ipykernel_27/3282046787.py\", line 60, in padding  *\n        if N_FRAMES &lt; self.INPUT_SIZE:\n\n    TypeError: '&lt;' not supported between instances of 'NoneType' and 'int'\n</code></pre>",
  "messages": [
    {
      "id": "2241741",
      "postDate": "05/01/2023 19:01:29",
      "content": "<pre><code>class FeatureGen(tf.Module):\n    def __init__(self):\n        super(FeatureGen, self).__init__()\n        self.meta_data = metaData\n        self.landMark = [0, 468, 489, 522, 543]\n        self.INPUT_SIZE = 32\n\n    def fill_nans(self,X, l, r):\n        z = X[:, l : r]\n        nan_idx, _ = tf.unique(tf.where(tf.reduce_all(tf.math.is_nan(z), axis=1))[:, 0])\n        not_nan_idx = tf.sets.difference(tf.reshape(tf.range(0, z.shape[0], dtype = tf.dtypes.int64), (1, -1)), tf.reshape(nan_idx, (1, -1))).values\n        if (nan_idx.shape[0]==None):\n            return z\n        if (nan_idx.shape[0] * 4 &gt; not_nan_idx.shape[0]):\n            indices = tf.where(tf.math.is_nan(z))\n            z = tf.tensor_scatter_nd_update(\n                z,\n                indices,\n                tf.zeros((tf.shape(indices)[0]))\n            )\n            return z\n        if nan_idx[0] == 0:\n            k,l = not_nan_idx[0],not_nan_idx[1]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[0] = a - d*k\n            not_nan_idx=tf.concat([[0], not_nan_idx], axis = 0)\n            nan_idx=nan_idx[1:]\n        if (nan_idx.shape[0] == 0):\n            return z\n        if nan_idx[-1] == z.shape[0] -1 :\n            k,l = not_nan_idx[-1],not_nan_idx[-2]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[k] - z[l]) / (k-l)\n            a = z[k]\n            z[-1] = a + d*(z.shape[0] -1 - k)\n            not_nan_idx=tf.concat([not_nan_idx,[z.shape[0]-1]], axis = 0)\n            nan_idx = nan_idx[:-1]\n        for i in nan_idx:\n            k,l = not_nan_idx[not_nan_idx&lt;i][-1],not_nan_idx[not_nan_idx&gt;i][0]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[i] = a + d*(i-k)\n        return z\n\n    def padding(self,data):\n        N_FRAMES = data.shape[0]\n        N_COLS = data.shape[1] # Number of Landmark indices i.e. 543\n        N_DIMS = data.shape[2]\n\n        if N_FRAMES &lt; self.INPUT_SIZE:\n            # Pad Data With Zeros\n            pad_size = self.INPUT_SIZE  - N_FRAMES\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n\n            # Pad By Concatenating Left/Right Edge Values\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n        else:\n            if N_FRAMES &lt; self.INPUT_SIZE**2:\n                # Repeat\n                repeats = (self.INPUT_SIZE * self.INPUT_SIZE) // N_FRAMES\n                data = tf.repeat(data, repeats=repeats, axis=0)\n            # Pad To Multiple Of Input Size\n            pool_size = len(data) // self.INPUT_SIZE + bool(len(data) % self.INPUT_SIZE)\n            pad_size = (pool_size * self.INPUT_SIZE) % len(data)\n\n            # Pad Start/End with Start/End value\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n            # Reshape to Mean Pool\n            data = tf.reshape(data, (self.INPUT_SIZE, -1, N_COLS, N_DIMS))\n            # Mean Pool\n            data = tf.experimental.numpy.nanmean(data, axis=1)\n        return data\n\n    @tf.function(input_signature=[\n      tf.TensorSpec(shape=[None, 543, 3], dtype=tf.float32, name='inputs')\n    ])\n    def call(self, x):\n        # shape -&gt; None , 543 , 3\n        for i in range(4):\n            y = self.fill_nans(x,self.landMark[i],self.landMark[i+1])\n            if i ==0:\n                output = y\n                continue\n            output = tf.concat([output,y],axis=1)\n        x = self.padding(output)\n        return x\n</code></pre>\n<pre><code>TypeError                                 Traceback (most recent call last)\n/tmp/ipykernel_27/1088593474.py in &lt;module&gt;\n----&gt; 1 model.call(x).shape\n\n/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/traceback_utils.py in error_handler(*args, **kwargs)\n    151     except Exception as e:\n    152       filtered_tb = _process_traceback_frames(e.__traceback__)\n--&gt; 153       raise e.with_traceback(filtered_tb) from None\n    154     finally:\n    155       del filtered_tb\n\n/tmp/__autograph_generated_filecbah15ng.py in tf__call(self, x)\n     59                 output = ag__.Undefined('output')\n     60                 ag__.for_stmt(ag__.converted_call(ag__.ld(range), (4,), None, fscope), None, loop_body, get_state_2, set_state_2, ('output',), {'iterate_names': 'i'})\n---&gt; 61                 x = ag__.converted_call(ag__.ld(self).padding, (ag__.ld(output),), None, fscope)\n     62                 try:\n     63                     do_return = True\n\n/tmp/__autograph_generated_filev3fkbxo7.py in tf__padding(self, data)\n     58                 pad_right = ag__.Undefined('pad_right')\n     59                 repeats = ag__.Undefined('repeats')\n---&gt; 60                 ag__.if_stmt((ag__.ld(N_FRAMES) &lt; ag__.ld(self).INPUT_SIZE), if_body_1, else_body_1, get_state_1, set_state_1, ('data',), 1)\n     61                 try:\n     62                     do_return = True\n\nTypeError: in user code:\n\n    File \"/tmp/ipykernel_27/600884451.py\", line 98, in call  *\n        x = self.padding(output)\n    File \"/tmp/ipykernel_27/3282046787.py\", line 60, in padding  *\n        if N_FRAMES &lt; self.INPUT_SIZE:\n\n    TypeError: '&lt;' not supported between instances of 'NoneType' and 'int'\n</code></pre>",
      "rawMarkdown": "```\nclass FeatureGen(tf.Module):\n    def __init__(self):\n        super(FeatureGen, self).__init__()\n        self.meta_data = metaData\n        self.landMark = [0, 468, 489, 522, 543]\n        self.INPUT_SIZE = 32\n        \n    def fill_nans(self,X, l, r):\n        z = X[:, l : r]\n        nan_idx, _ = tf.unique(tf.where(tf.reduce_all(tf.math.is_nan(z), axis=1))[:, 0])\n        not_nan_idx = tf.sets.difference(tf.reshape(tf.range(0, z.shape[0], dtype = tf.dtypes.int64), (1, -1)), tf.reshape(nan_idx, (1, -1))).values\n        if (nan_idx.shape[0]==None):\n            return z\n        if (nan_idx.shape[0] * 4 > not_nan_idx.shape[0]):\n            indices = tf.where(tf.math.is_nan(z))\n            z = tf.tensor_scatter_nd_update(\n                z,\n                indices,\n                tf.zeros((tf.shape(indices)[0]))\n            )\n            return z\n        if nan_idx[0] == 0:\n            k,l = not_nan_idx[0],not_nan_idx[1]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[0] = a - d*k\n            not_nan_idx=tf.concat([[0], not_nan_idx], axis = 0)\n            nan_idx=nan_idx[1:]\n        if (nan_idx.shape[0] == 0):\n            return z\n        if nan_idx[-1] == z.shape[0] -1 :\n            k,l = not_nan_idx[-1],not_nan_idx[-2]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[k] - z[l]) / (k-l)\n            a = z[k]\n            z[-1] = a + d*(z.shape[0] -1 - k)\n            not_nan_idx=tf.concat([not_nan_idx,[z.shape[0]-1]], axis = 0)\n            nan_idx = nan_idx[:-1]\n        for i in nan_idx:\n            k,l = not_nan_idx[not_nan_idx<i][-1],not_nan_idx[not_nan_idx>i][0]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[i] = a + d*(i-k)\n        return z\n    \n    def padding(self,data):\n        N_FRAMES = data.shape[0]\n        N_COLS = data.shape[1] # Number of Landmark indices i.e. 543\n        N_DIMS = data.shape[2]\n\n        if N_FRAMES < self.INPUT_SIZE:\n            # Pad Data With Zeros\n            pad_size = self.INPUT_SIZE  - N_FRAMES\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n\n            # Pad By Concatenating Left/Right Edge Values\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n        else:\n            if N_FRAMES < self.INPUT_SIZE**2:\n                # Repeat\n                repeats = (self.INPUT_SIZE * self.INPUT_SIZE) // N_FRAMES\n                data = tf.repeat(data, repeats=repeats, axis=0)\n            # Pad To Multiple Of Input Size\n            pool_size = len(data) // self.INPUT_SIZE + bool(len(data) % self.INPUT_SIZE)\n            pad_size = (pool_size * self.INPUT_SIZE) % len(data)\n\n            # Pad Start/End with Start/End value\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n            # Reshape to Mean Pool\n            data = tf.reshape(data, (self.INPUT_SIZE, -1, N_COLS, N_DIMS))\n            # Mean Pool\n            data = tf.experimental.numpy.nanmean(data, axis=1)\n        return data\n    \n    @tf.function(input_signature=[\n      tf.TensorSpec(shape=[None, 543, 3], dtype=tf.float32, name='inputs')\n    ])\n    def call(self, x):\n        # shape -> None , 543 , 3\n        for i in range(4):\n            y = self.fill_nans(x,self.landMark[i],self.landMark[i+1])\n            if i ==0:\n                output = y\n                continue\n            output = tf.concat([output,y],axis=1)\n        x = self.padding(output)\n        return x\n```\n```\nTypeError                                 Traceback (most recent call last)\n/tmp/ipykernel_27/1088593474.py in <module>\n----> 1 model.call(x).shape\n\n/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/traceback_utils.py in error_handler(*args, **kwargs)\n    151     except Exception as e:\n    152       filtered_tb = _process_traceback_frames(e.__traceback__)\n--> 153       raise e.with_traceback(filtered_tb) from None\n    154     finally:\n    155       del filtered_tb\n\n/tmp/__autograph_generated_filecbah15ng.py in tf__call(self, x)\n     59                 output = ag__.Undefined('output')\n     60                 ag__.for_stmt(ag__.converted_call(ag__.ld(range), (4,), None, fscope), None, loop_body, get_state_2, set_state_2, ('output',), {'iterate_names': 'i'})\n---> 61                 x = ag__.converted_call(ag__.ld(self).padding, (ag__.ld(output),), None, fscope)\n     62                 try:\n     63                     do_return = True\n\n/tmp/__autograph_generated_filev3fkbxo7.py in tf__padding(self, data)\n     58                 pad_right = ag__.Undefined('pad_right')\n     59                 repeats = ag__.Undefined('repeats')\n---> 60                 ag__.if_stmt((ag__.ld(N_FRAMES) < ag__.ld(self).INPUT_SIZE), if_body_1, else_body_1, get_state_1, set_state_1, ('data',), 1)\n     61                 try:\n     62                     do_return = True\n\nTypeError: in user code:\n\n    File \"/tmp/ipykernel_27/600884451.py\", line 98, in call  *\n        x = self.padding(output)\n    File \"/tmp/ipykernel_27/3282046787.py\", line 60, in padding  *\n        if N_FRAMES < self.INPUT_SIZE:\n\n    TypeError: '<' not supported between instances of 'NoneType' and 'int'\n```",
      "votes": null
    },
    {
      "id": "2241780",
      "postDate": "05/01/2023 20:09:02",
      "content": "<p>Even I'm facing the same issue, anyone who knows how to resolve it….plz help</p>",
      "rawMarkdown": "Even I'm facing the same issue, anyone who knows how to resolve it....plz help",
      "votes": null
    },
    {
      "id": "3389962",
      "postDate": "01/12/2026 09:23:43",
      "content": "<p>good work !!!</p>",
      "rawMarkdown": "good work !!!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 2241780,
      "author_name": "uttammittal02",
      "author_url": "",
      "post_date": "05/01/2023 20:09:02",
      "content": "<p>Even I'm facing the same issue, anyone who knows how to resolve it….plz help</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3389962,
      "author_name": "shivanshgoyal123",
      "author_url": "",
      "post_date": "01/12/2026 09:23:43",
      "content": "<p>good work !!!</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "2241741": "```\nclass FeatureGen(tf.Module):\n    def __init__(self):\n        super(FeatureGen, self).__init__()\n        self.meta_data = metaData\n        self.landMark = [0, 468, 489, 522, 543]\n        self.INPUT_SIZE = 32\n        \n    def fill_nans(self,X, l, r):\n        z = X[:, l : r]\n        nan_idx, _ = tf.unique(tf.where(tf.reduce_all(tf.math.is_nan(z), axis=1))[:, 0])\n        not_nan_idx = tf.sets.difference(tf.reshape(tf.range(0, z.shape[0], dtype = tf.dtypes.int64), (1, -1)), tf.reshape(nan_idx, (1, -1))).values\n        if (nan_idx.shape[0]==None):\n            return z\n        if (nan_idx.shape[0] * 4 > not_nan_idx.shape[0]):\n            indices = tf.where(tf.math.is_nan(z))\n            z = tf.tensor_scatter_nd_update(\n                z,\n                indices,\n                tf.zeros((tf.shape(indices)[0]))\n            )\n            return z\n        if nan_idx[0] == 0:\n            k,l = not_nan_idx[0],not_nan_idx[1]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[0] = a - d*k\n            not_nan_idx=tf.concat([[0], not_nan_idx], axis = 0)\n            nan_idx=nan_idx[1:]\n        if (nan_idx.shape[0] == 0):\n            return z\n        if nan_idx[-1] == z.shape[0] -1 :\n            k,l = not_nan_idx[-1],not_nan_idx[-2]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[k] - z[l]) / (k-l)\n            a = z[k]\n            z[-1] = a + d*(z.shape[0] -1 - k)\n            not_nan_idx=tf.concat([not_nan_idx,[z.shape[0]-1]], axis = 0)\n            nan_idx = nan_idx[:-1]\n        for i in nan_idx:\n            k,l = not_nan_idx[not_nan_idx<i][-1],not_nan_idx[not_nan_idx>i][0]\n            if (k == l):\n                print(f\"Uncaught exception, k can't be equal to l : k = {k}, l = {l}\")\n                exit()\n            d = (z[l] - z[k]) / (l-k)\n            a = z[k]\n            z[i] = a + d*(i-k)\n        return z\n    \n    def padding(self,data):\n        N_FRAMES = data.shape[0]\n        N_COLS = data.shape[1] # Number of Landmark indices i.e. 543\n        N_DIMS = data.shape[2]\n\n        if N_FRAMES < self.INPUT_SIZE:\n            # Pad Data With Zeros\n            pad_size = self.INPUT_SIZE  - N_FRAMES\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n\n            # Pad By Concatenating Left/Right Edge Values\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n        else:\n            if N_FRAMES < self.INPUT_SIZE**2:\n                # Repeat\n                repeats = (self.INPUT_SIZE * self.INPUT_SIZE) // N_FRAMES\n                data = tf.repeat(data, repeats=repeats, axis=0)\n            # Pad To Multiple Of Input Size\n            pool_size = len(data) // self.INPUT_SIZE + bool(len(data) % self.INPUT_SIZE)\n            pad_size = (pool_size * self.INPUT_SIZE) % len(data)\n\n            # Pad Start/End with Start/End value\n            pad_left = (pad_size // 2)\n            pad_right = (pad_size // 2) + pad_size % 2\n            data = tf.pad(data, tf.constant([[pad_left, pad_right], [0, 0], [0, 0]]), 'constant', constant_values=0)\n            # Reshape to Mean Pool\n            data = tf.reshape(data, (self.INPUT_SIZE, -1, N_COLS, N_DIMS))\n            # Mean Pool\n            data = tf.experimental.numpy.nanmean(data, axis=1)\n        return data\n    \n    @tf.function(input_signature=[\n      tf.TensorSpec(shape=[None, 543, 3], dtype=tf.float32, name='inputs')\n    ])\n    def call(self, x):\n        # shape -> None , 543 , 3\n        for i in range(4):\n            y = self.fill_nans(x,self.landMark[i],self.landMark[i+1])\n            if i ==0:\n                output = y\n                continue\n            output = tf.concat([output,y],axis=1)\n        x = self.padding(output)\n        return x\n```\n```\nTypeError                                 Traceback (most recent call last)\n/tmp/ipykernel_27/1088593474.py in <module>\n----> 1 model.call(x).shape\n\n/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/traceback_utils.py in error_handler(*args, **kwargs)\n    151     except Exception as e:\n    152       filtered_tb = _process_traceback_frames(e.__traceback__)\n--> 153       raise e.with_traceback(filtered_tb) from None\n    154     finally:\n    155       del filtered_tb\n\n/tmp/__autograph_generated_filecbah15ng.py in tf__call(self, x)\n     59                 output = ag__.Undefined('output')\n     60                 ag__.for_stmt(ag__.converted_call(ag__.ld(range), (4,), None, fscope), None, loop_body, get_state_2, set_state_2, ('output',), {'iterate_names': 'i'})\n---> 61                 x = ag__.converted_call(ag__.ld(self).padding, (ag__.ld(output),), None, fscope)\n     62                 try:\n     63                     do_return = True\n\n/tmp/__autograph_generated_filev3fkbxo7.py in tf__padding(self, data)\n     58                 pad_right = ag__.Undefined('pad_right')\n     59                 repeats = ag__.Undefined('repeats')\n---> 60                 ag__.if_stmt((ag__.ld(N_FRAMES) < ag__.ld(self).INPUT_SIZE), if_body_1, else_body_1, get_state_1, set_state_1, ('data',), 1)\n     61                 try:\n     62                     do_return = True\n\nTypeError: in user code:\n\n    File \"/tmp/ipykernel_27/600884451.py\", line 98, in call  *\n        x = self.padding(output)\n    File \"/tmp/ipykernel_27/3282046787.py\", line 60, in padding  *\n        if N_FRAMES < self.INPUT_SIZE:\n\n    TypeError: '<' not supported between instances of 'NoneType' and 'int'\n```",
    "2241780": "Even I'm facing the same issue, anyone who knows how to resolve it....plz help",
    "3389962": "good work !!!"
  },
  "source": "meta"
}