Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ValueError: Trying to share variable rnn/attention_cell_wrapper/multi_rnn_cell/cell_0/gru_cell/gates/kernel, but specified shape (200, 200) and found shape (2428, 200). #7

Open
zhivko opened this issue Jul 9, 2017 · 1 comment

Comments

@zhivko
Copy link

zhivko commented Jul 9, 2017

Training the RNN¶

with tf.Graph().as_default():

model = RNNModel()

input_ = train[0]

target = train[1]

with tf.Session() as sess:

    init = tf.initialize_all_variables()

    sess.run([init])

    loss = 2000

    

    for e in range(NUM_EPOCHS):

        state = sess.run(model.zero_state)

        epoch_loss =0

        for batch in range(0,NUM_TRAIN_BATCHES):

            start = batch*BATCH_SIZE

            end = start + BATCH_SIZE 

            feed = {

                model.input_data:input_[start:end],

                model.target_data:target[start:end],

                model.dropout_prob:0.5,

                model.start_state:state

                        }

            _,loss,acc,state = sess.run(

                [

                    model.train_op,

                    model.loss,

                    model.accuracy,

                    model.end_state

                ]

                ,feed_dict=feed

            )

            epoch_loss+=loss

            

        print('step - {0} loss - {1} acc - {2}'.format((e),epoch_loss,acc))

    final_preds =np.array([])

    for batch in range(0,NUM_VAL_BATCHES):

            start = batch*BATCH_SIZE

            end = start + BATCH_SIZE 

            feed = {

                model.input_data:val[0][start:end],

                model.target_data:val[1][start:end],

                model.dropout_prob:1,

                model.start_state:state

                        }

            acc,preds,state = sess.run(

                [

                    model.accuracy,

                    model.predictions,

                    model.end_state

                ]

                ,feed_dict=feed

            )

            print(acc)

            assert len(preds) == BATCH_SIZE

            final_preds = np.concatenate((final_preds,preds),axis=0)

WARNING:tensorflow:<tensorflow.contrib.rnn.python.ops.rnn_cell.AttentionCellWrapper object at 0x0000021E0CFB02B0>: Using a concatenated state is slower and will soon be deprecated. Use state_is_tuple=True.


ValueError Traceback (most recent call last)
in ()
1 with tf.Graph().as_default():
----> 2 model = RNNModel()
3 input_ = train[0]
4 target = train[1]
5 with tf.Session() as sess:

in init(self)
44 scope.reuse_variables()
45
---> 46 output, state = self.gru_cell(inp, state)
47 states.append(state)
48 outputs.append(output)

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in call(self, inputs, state, scope)
178 with vs.variable_scope(vs.get_variable_scope(),
179 custom_getter=self._rnn_get_variable):
--> 180 return super(RNNCell, self).call(inputs, state)
181
182 def _rnn_get_variable(self, getter, *args, **kwargs):

c:\python35\lib\site-packages\tensorflow\python\layers\base.py in call(self, inputs, *args, **kwargs)
439 # Check input assumptions set after layer building, e.g. input shape.
440 self._assert_input_compatibility(inputs)
--> 441 outputs = self.call(inputs, *args, **kwargs)
442
443 # Apply activity regularization.

c:\python35\lib\site-packages\tensorflow\contrib\rnn\python\ops\rnn_cell.py in call(self, inputs, state)
1111 input_size = inputs.get_shape().as_list()[1]
1112 inputs = _linear([inputs, attns], input_size, True)
-> 1113 lstm_output, new_state = self._cell(inputs, state)
1114 if self._state_is_tuple:
1115 new_state_cat = array_ops.concat(nest.flatten(new_state), 1)

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in call(self, inputs, state, scope)
178 with vs.variable_scope(vs.get_variable_scope(),
179 custom_getter=self._rnn_get_variable):
--> 180 return super(RNNCell, self).call(inputs, state)
181
182 def _rnn_get_variable(self, getter, *args, **kwargs):

c:\python35\lib\site-packages\tensorflow\python\layers\base.py in call(self, inputs, *args, **kwargs)
439 # Check input assumptions set after layer building, e.g. input shape.
440 self._assert_input_compatibility(inputs)
--> 441 outputs = self.call(inputs, *args, **kwargs)
442
443 # Apply activity regularization.

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in call(self, inputs, state)
914 [-1, cell.state_size])
915 cur_state_pos += cell.state_size
--> 916 cur_inp, new_state = cell(cur_inp, cur_state)
917 new_states.append(new_state)
918

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in call(self, inputs, state, scope)
178 with vs.variable_scope(vs.get_variable_scope(),
179 custom_getter=self._rnn_get_variable):
--> 180 return super(RNNCell, self).call(inputs, state)
181
182 def _rnn_get_variable(self, getter, *args, **kwargs):

c:\python35\lib\site-packages\tensorflow\python\layers\base.py in call(self, inputs, *args, **kwargs)
439 # Check input assumptions set after layer building, e.g. input shape.
440 self._assert_input_compatibility(inputs)
--> 441 outputs = self.call(inputs, *args, **kwargs)
442
443 # Apply activity regularization.

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in call(self, inputs, state)
293 value = math_ops.sigmoid(
294 _linear([inputs, state], 2 * self._num_units, True, bias_ones,
--> 295 self._kernel_initializer))
296 r, u = array_ops.split(value=value, num_or_size_splits=2, axis=1)
297 with vs.variable_scope("candidate"):

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in _linear(args, output_size, bias, bias_initializer, kernel_initializer)
1015 _WEIGHTS_VARIABLE_NAME, [total_arg_size, output_size],
1016 dtype=dtype,
-> 1017 initializer=kernel_initializer)
1018 if len(args) == 1:
1019 res = math_ops.matmul(args[0], weights)

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in get_variable(name, shape, dtype, initializer, regularizer, trainable, collections, caching_device, partitioner, validate_shape, use_resource, custom_getter)
1063 collections=collections, caching_device=caching_device,
1064 partitioner=partitioner, validate_shape=validate_shape,
-> 1065 use_resource=use_resource, custom_getter=custom_getter)
1066 get_variable_or_local_docstring = (
1067 """%s

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in get_variable(self, var_store, name, shape, dtype, initializer, regularizer, reuse, trainable, collections, caching_device, partitioner, validate_shape, use_resource, custom_getter)
960 collections=collections, caching_device=caching_device,
961 partitioner=partitioner, validate_shape=validate_shape,
--> 962 use_resource=use_resource, custom_getter=custom_getter)
963
964 def _get_partitioned_variable(self,

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in get_variable(self, name, shape, dtype, initializer, regularizer, reuse, trainable, collections, caching_device, partitioner, validate_shape, use_resource, custom_getter)
358 reuse=reuse, trainable=trainable, collections=collections,
359 caching_device=caching_device, partitioner=partitioner,
--> 360 validate_shape=validate_shape, use_resource=use_resource)
361 else:
362 return _true_getter(

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in wrapped_custom_getter(getter, *args, **kwargs)
1403 return custom_getter(
1404 functools.partial(old_getter, getter),
-> 1405 *args, **kwargs)
1406 return wrapped_custom_getter
1407

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in _rnn_get_variable(self, getter, *args, **kwargs)
181
182 def _rnn_get_variable(self, getter, *args, **kwargs):
--> 183 variable = getter(*args, **kwargs)
184 trainable = (variable in tf_variables.trainable_variables() or
185 (isinstance(variable, tf_variables.PartitionedVariable) and

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in wrapped_custom_getter(getter, *args, **kwargs)
1403 return custom_getter(
1404 functools.partial(old_getter, getter),
-> 1405 *args, **kwargs)
1406 return wrapped_custom_getter
1407

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in _rnn_get_variable(self, getter, *args, **kwargs)
181
182 def _rnn_get_variable(self, getter, *args, **kwargs):
--> 183 variable = getter(*args, **kwargs)
184 trainable = (variable in tf_variables.trainable_variables() or
185 (isinstance(variable, tf_variables.PartitionedVariable) and

c:\python35\lib\site-packages\tensorflow\python\ops\rnn_cell_impl.py in _rnn_get_variable(self, getter, *args, **kwargs)
181
182 def _rnn_get_variable(self, getter, *args, **kwargs):
--> 183 variable = getter(*args, **kwargs)
184 trainable = (variable in tf_variables.trainable_variables() or
185 (isinstance(variable, tf_variables.PartitionedVariable) and

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in _true_getter(name, shape, dtype, initializer, regularizer, reuse, trainable, collections, caching_device, partitioner, validate_shape, use_resource)
350 trainable=trainable, collections=collections,
351 caching_device=caching_device, validate_shape=validate_shape,
--> 352 use_resource=use_resource)
353
354 if custom_getter is not None:

c:\python35\lib\site-packages\tensorflow\python\ops\variable_scope.py in _get_single_variable(self, name, shape, dtype, initializer, regularizer, partition_info, reuse, trainable, collections, caching_device, validate_shape, use_resource)
667 raise ValueError("Trying to share variable %s, but specified shape %s"
668 " and found shape %s." % (name, shape,
--> 669 found_var.get_shape()))
670 if not dtype.is_compatible_with(found_var.dtype):
671 dtype_str = dtype.name

ValueError: Trying to share variable rnn/attention_cell_wrapper/multi_rnn_cell/cell_0/gru_cell/gates/kernel, but specified shape (200, 200) and found shape (2428, 200).

@zhivko
Copy link
Author

zhivko commented Jul 9, 2017

I am using tensorflow 1.2. It seems this error was not there if using tensorflow 1.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant