warmspringwinds / tensorflow_notes

Tensorflow notes
226 stars 101 forks source link

ValueError: Variable fcn_8s/vgg_16/conv1/conv1_1/weights already exists, disallowed #2

Open amiltonwong opened 7 years ago

amiltonwong commented 7 years ago

Hi, @warmspringwinds ,

I followed the steps from README.md. And start to run the first cell from fully_convolutional_networks.ipynb . However I got the following ValueError, could you suggest me how to fix this error? (my environment: TF 0.12.1, python 2.7.13)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-4efcd9f3827b> in <module>()
     47 pred, fcn_16s_variables_mapping = FCN_8s(image_batch_tensor=image_batch_tensor,
     48                                           number_of_classes=number_of_classes,
---> 49                                           is_training=False)
     50 
     51 # The op for initializing the variables.

/data/code/Dan_segment/tf-image-segmentation/tf_image_segmentation/utils/inference.pyc in new_network_definition(*args, **kwargs)
     51         kwargs['image_batch_tensor'] = resized_images_batch
     52 
---> 53         all_outputs = network_definition(*args, **kwargs)
     54 
     55         all_outputs = list(all_outputs)

/data/code/Dan_segment/tf-image-segmentation/tf_image_segmentation/models/fcn_8s.pyc in FCN_8s(image_batch_tensor, number_of_classes, is_training)
     77                                                        is_training=is_training,
     78                                                        spatial_squeeze=False,
---> 79                                                        fc_conv_padding='SAME')
     80 
     81 

/data/code/Dan_segment/models/slim/nets/vgg.pyc in vgg_16(inputs, num_classes, is_training, dropout_keep_prob, spatial_squeeze, scope, fc_conv_padding)
    164     with slim.arg_scope([slim.conv2d, slim.fully_connected, slim.max_pool2d],
    165                         outputs_collections=end_points_collection):
--> 166       net = slim.repeat(inputs, 2, slim.conv2d, 64, [3, 3], scope='conv1')
    167       net = slim.max_pool2d(net, [2, 2], scope='pool1')
    168       net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3], scope='conv2')

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/layers.pyc in repeat(inputs, repetitions, layer, *args, **kwargs)
   1668     for i in range(repetitions):
   1669       kwargs['scope'] = scope + '_' + str(i+1)
-> 1670       outputs = layer(outputs, *args, **kwargs)
   1671     return outputs
   1672 

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.pyc in func_with_args(*args, **kwargs)
    175       current_args = current_scope[key_func].copy()
    176       current_args.update(kwargs)
--> 177     return func(*args, **current_args)
    178   _add_op(func)
    179   setattr(func_with_args, '_key_op', _key_op(func))

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/layers.pyc in convolution(inputs, num_outputs, kernel_size, stride, padding, data_format, rate, activation_fn, normalizer_fn, normalizer_params, weights_initializer, weights_regularizer, biases_initializer, biases_regularizer, reuse, variables_collections, outputs_collections, trainable, scope)
    838                                        regularizer=weights_regularizer,
    839                                        collections=weights_collections,
--> 840                                        trainable=trainable)
    841     outputs = nn.convolution(input=inputs,
    842                              filter=weights,

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.pyc in func_with_args(*args, **kwargs)
    175       current_args = current_scope[key_func].copy()
    176       current_args.update(kwargs)
--> 177     return func(*args, **current_args)
    178   _add_op(func)
    179   setattr(func_with_args, '_key_op', _key_op(func))

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/variables.pyc in model_variable(name, shape, dtype, initializer, regularizer, trainable, collections, caching_device, device)
    242                   initializer=initializer, regularizer=regularizer,
    243                   trainable=trainable, collections=collections,
--> 244                   caching_device=caching_device, device=device)
    245 
    246 

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.pyc in func_with_args(*args, **kwargs)
    175       current_args = current_scope[key_func].copy()
    176       current_args.update(kwargs)
--> 177     return func(*args, **current_args)
    178   _add_op(func)
    179   setattr(func_with_args, '_key_op', _key_op(func))

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/variables.pyc in variable(name, shape, dtype, initializer, regularizer, trainable, collections, caching_device, device)
    206                                        trainable=trainable,
    207                                        collections=collections,
--> 208                                        caching_device=caching_device)
    209 
    210 

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.pyc in get_variable(name, shape, dtype, initializer, regularizer, trainable, collections, caching_device, partitioner, validate_shape, custom_getter)
   1022       collections=collections, caching_device=caching_device,
   1023       partitioner=partitioner, validate_shape=validate_shape,
-> 1024       custom_getter=custom_getter)
   1025 
   1026 

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.pyc in get_variable(self, var_store, name, shape, dtype, initializer, regularizer, trainable, collections, caching_device, partitioner, validate_shape, custom_getter)
    848           collections=collections, caching_device=caching_device,
    849           partitioner=partitioner, validate_shape=validate_shape,
--> 850           custom_getter=custom_getter)
    851 
    852   def _get_partitioned_variable(self,

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.pyc in get_variable(self, name, shape, dtype, initializer, regularizer, reuse, trainable, collections, caching_device, partitioner, validate_shape, custom_getter)
    344           reuse=reuse, trainable=trainable, collections=collections,
    345           caching_device=caching_device, partitioner=partitioner,
--> 346           validate_shape=validate_shape)
    347 
    348   def _get_partitioned_variable(

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.pyc in _true_getter(name, shape, dtype, initializer, regularizer, reuse, trainable, collections, caching_device, partitioner, validate_shape)
    329           initializer=initializer, regularizer=regularizer, reuse=reuse,
    330           trainable=trainable, collections=collections,
--> 331           caching_device=caching_device, validate_shape=validate_shape)
    332 
    333     if custom_getter is not None:

/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.pyc in _get_single_variable(self, name, shape, dtype, initializer, regularizer, partition_info, reuse, trainable, collections, caching_device, validate_shape)
    630                          " Did you mean to set reuse=True in VarScope? "
    631                          "Originally defined at:\n\n%s" % (
--> 632                              name, "".join(traceback.format_list(tb))))
    633       found_var = self._vars[name]
    634       if not shape.is_compatible_with(found_var.get_shape()):

ValueError: Variable fcn_8s/vgg_16/conv1/conv1_1/weights already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at:

  File "/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/variables.py", line 208, in variable
    caching_device=caching_device)
  File "/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 177, in func_with_args
    return func(*args, **current_args)
  File "/root/anaconda2/envs/python_2.7_tf_0.12/lib/python2.7/site-packages/tensorflow/contrib/framework/python/ops/variables.py", line 244, in model_variable
    caching_device=caching_device, device=device)
xilaili commented 7 years ago

I got the same error. Does anyone know how to solve it?

warmspringwinds commented 7 years ago

@amiltonwong @xilaili

Thank you for your issue.

I guess there might be two reasons for that:

1) You didn't change the global variables according to your setup here:

sys.path.append("tf-image-segmentation/")
sys.path.append("/home/dpakhom1/workspace/my_models/slim/")

fcn_16s_checkpoint_path = '/home/dpakhom1/tf_projects/segmentation/model_fcn8s_final.ckpt'

os.environ["CUDA_VISIBLE_DEVICES"] = '1'

2) Or you try to run the same cell twice. Restart the notebook or restart the kernel of the current notebook.

Let me know if it helps

parlange commented 7 years ago

Hi @warmspringwinds, I also followed the instructions on the repository and got an error.

Is this global variable setup correct? I cloned tf-image-segmentation and models/slim into my workspace, then:

sys.path.append("/Users/username/Desktop/FCN Segmentation/tf-image-segmentation/") sys.path.append("/Users/username/Desktop/FCN Segmentation/models/slim")

fcn_16s_checkpoint_path = '/Users/username/Desktop/FCN Segmentation/FCN Checkpoints/model_fcn8s_final.ckpt'

os.environ["CUDA_VISIBLE_DEVICES"] = '0'

I am getting this error: name 'adapt_network_for_any_size_input' is not defined

Global variables are not pointing correctly the files fcn_8s.py, inference.py and pascal_voc.py.

Hope you can review this problem I'm having. Thank you.

ghost commented 7 years ago

Hi, @warmspringwinds i get this error after carefully running as explained.

AttributeError Traceback (most recent call last)

in () 6 pred, fcn_16s_variables_mapping = FCN_8s(image_batch_tensor=image_batch_tensor, 7 number_of_classes=number_of_classes, ----> 8 is_training=False) AttributeError: 'module' object has no attribute 'pack' But i am using TF1.1.0. So, this could be a version problem?
mangwaier commented 7 years ago

Hi,@warmspringwinds. I get this error:"logits and labels must be same size: logits_size=[168960,2] labels_size=[187500,2]".

Hope you can review this problem I'm having. Thank you!!!!!

CataRay commented 7 years ago

@sharib-ms yes it a version problem:

Analogously to tf.pack and tf.unpack, we're renamed TensorArray.pack and TensorArray.unpack to TensorArray.stack and TensorArray.unstack. However, TensorArray.pack and TensorArray.unpack cannot be detected lexically since they are indirectly related to the tf namespace e.g. foo = tf.TensorArray(); foo.unpack()

All information is found: https://www.tensorflow.org/install/migration

You can change it to tf.stack and it should work.

ycynyu007 commented 6 years ago

maybe you ran the code once , try to restart the kernel,it would clear the weights you have set before