Could not find variable conv1/gdn_0/reparam_gamma

Open
#187 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python, tensorflow

Research direction

Start with the supplied my_model definition and reproduce the failure at model.fit using TensorFlow 2.8.0 and tensorflow-compression 2.8.0. Compare the model behavior with GDN removed or replaced, then inspect the GDN activation path and variable initialization. Done means the GDN-enabled model completes training without the missing reparam_gamma error.

Written by the indexing model from the issue text.

Description

Describe the bug
I am using tensorflow and tensorflow-compression to train a new model in keras. However, when the code runs to model.fit, the following error occurs:

Epoch 1/100
*** tensorflow.python.framework.errors_impl.FailedPreconditionError: 2 root error(s) found.
  (0) FAILED_PRECONDITION: Could not find variable conv1/gdn_0/reparam_gamma. This could mean that the variable has been deleted. In TF1, it can
also mean the variable is uninitialized. Debug info: container=localhost, status error message=Resource localhost/conv1/gdn_0/reparam_gamma/N10tensorflow3VarE does not exist.
         [[{{node conv1/gdn_0/gamma/lower_bound_1/ReadVariableOp}}]]
         [[loss/mul/_97]]
  (1) FAILED_PRECONDITION: Could not find variable conv1/gdn_0/reparam_gamma. This could mean that the variable has been deleted. In TF1, it can
also mean the variable is uninitialized. Debug info: container=localhost, status error message=Resource localhost/conv1/gdn_0/reparam_gamma/N10tensorflow3VarE does not exist.
         [[{{node conv1/gdn_0/gamma/lower_bound_1/ReadVariableOp}}]]
0 successful operations.
0 derived errors ignored.

This is my model:

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import LeakyReLU
from tensorflow.keras.layers import Input
from tensorflow_compression import GDN

def my_model:
    def __init__(self,input_shape,filter_num):
        self.input_shape = input_shape
        self.filter_num = filter_num
    def create_model(self):
        input = Input(shape=self.input_shape, name="input_1")
        conv1 = Conv2D(filters=self.filter_num, kernel_size=3, padding="same", name="conv1", activation=GDN(name="gdn_0"))
        x = conv1(input)
        # layer_gdn = GDN(name="gdn_0")
        # x = layer_gdn(x)
        output  = LeakyReLU(alpha=self.alpha, name="hidden_activation")(x)
        model = Model(inputs=input, outputs=output)
        if self.training:
            opt = keras.optimizers.Adam()
            model.compile(
                optimizer=opt,
                loss=MSELoss,
                experimental_run_tf_function=False,
            )
        return model

Besides, if I remove the activation=GDN(name="gdn_0") or replace it with others, the training goes well, so maybe it is a bug.
What should I do to solve it?

Thanks.

System:

  • OS: Ubuntu18.04
  • Python version: 3.8, [anaconda install]
  • TensorFlow version 2.8.0 [pip install]
  • tensorflow-compression version 2.8.0
Dominant language
Python
Stars
923
Forks
258
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from tensorflow/compression

All issues in tensorflow/compression

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.