Модель Tensorflow Добавить проблему для генерации текста

1

Я следую этой модели, генераторам текста, и я застрял. Это моя первая попытка shadoworflow, поэтому я не уверен, в чем проблема, но поскольку она работала в учебнике, и она не работает для меня, похоже, возможно, было обновление. Изменен ли формат model.add? Я не уверен, как устранить эту проблему, поскольку я так новичок в библиотеке.

model = Sequential()
model.add(LSTM(400, input_shape=(X_modified.shape[1], X_modified.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(400))
model.add(Dropout(0.2))
model.add(Dense(Y_modified.shape[1], activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam')

Выдает ошибку

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-75-5a0fde131e03> in <module>()
  1 model = Sequential()
----> 2 model.add(LSTM(400, input_shape=(X_modified.shape[1], X_modified.shape[2]), return_sequences=True))
  3 model.add(Dropout(0.2))
  4 model.add(LSTM(400))
  5 model.add(Dropout(0.2))

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/engine/sequential.py in add(self, layer)
162                     # and create the node connecting the current layer
163                     # to the input layer we just created.
--> 164                     layer(x)
165                     set_inputs = True
166                 else:

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/layers/recurrent.py in __call__(self, inputs, initial_state, constants, **kwargs)
498 
499         if initial_state is None and constants is None:
--> 500             return super(RNN, self).__call__(inputs, **kwargs)
501 
502         # If any of 'initial_state' or 'constants' are specified and are Keras

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/engine/base_layer.py in __call__(self, inputs, **kwargs)
429                                          'You can build it manually via: '
430                                          ''layer.build(batch_input_shape)'')
--> 431                 self.build(unpack_singleton(input_shapes))
432                 self.built = True
433 

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/layers/recurrent.py in build(self, input_shape)
459                 self.cell.build([step_input_shape] + constants_shape)
460             else:
--> 461                 self.cell.build(step_input_shape)
462 
463         # set or validate state_spec

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/layers/recurrent.py in build(self, input_shape)
   1819                                         initializer=bias_initializer,
   1820                                         regularizer=self.bias_regularizer,
-> 1821                                         constraint=self.bias_constraint)
   1822         else:
   1823             self.bias = None

~/anaconda/envs/dataweekends/lib/python3.7/site-    packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
 89                 warnings.warn('Update your '' + object_name +
 90                               '' call to the Keras 2 API: ' + signature, stacklevel=2)
---> 91             return func(*args, **kwargs)
 92         wrapper._original_function = func
 93         return wrapper

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/engine/base_layer.py in add_weight(self, name, shape, dtype, initializer, regularizer, trainable, constraint)
247         if dtype is None:
248             dtype = K.floatx()
--> 249         weight = K.variable(initializer(shape),
250                             dtype=dtype,
251                             name=name,

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/layers/recurrent.py in bias_initializer(_, *args, **kwargs)
   1811                         self.bias_initializer((self.units,), *args, **kwargs),
   1812                         initializers.Ones()((self.units,), *args, **kwargs),
-> 1813                         self.bias_initializer((self.units * 2,), *args, **kwargs),
   1814                     ])
   1815             else:

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in concatenate(tensors, axis)
   1932         return tf.sparse_concat(axis, tensors)
   1933     else:
-> 1934         return tf.concat([to_dense(x) for x in tensors], axis)
   1935 
   1936 

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py in concat(concat_dim, values, name)
   1073       ops.convert_to_tensor(concat_dim,
   1074                             name="concat_dim",
-> 1075                             dtype=dtypes.int32).get_shape(
   1076                             ).assert_is_compatible_with(tensor_shape.scalar())
   1077       return identity(values[0], name=scope)

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/tensorflow/python/framework/ops.py in convert_to_tensor(value, dtype, name, as_ref, preferred_dtype)
667 
668         if ret is None:
--> 669           ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
    670 
    671         if ret is NotImplemented:

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py in _constant_tensor_conversion_function(v, dtype, name, as_ref)
    174                                          as_ref=False):
    175   _ = as_ref
    --> 176   return constant(v, dtype=dtype, name=name)
    177 
    178 

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/tensorflow/python/framework/constant_op.py in constant(value, dtype, shape, name, verify_shape)
    163   tensor_value = attr_value_pb2.AttrValue()
    164   tensor_value.tensor.CopyFrom(
--> 165       tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
    166   dtype_value =     attr_value_pb2.AttrValue(type=tensor_value.tensor.dtype)
    167   const_tensor = g.create_op(

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/tensorflow/python/framework/tensor_util.py in make_tensor_proto(values, dtype, shape, verify_shape)
    365       nparray = np.empty(shape, dtype=np_dt)
    366     else:
--> 367       _AssertCompatible(values, dtype)
    368       nparray = np.array(values, dtype=np_dt)
    369       # check to them.

~/anaconda/envs/dataweekends/lib/python3.7/site-packages/tensorflow/python/framework/tensor_util.py in _AssertCompatible(values, dtype)
    300     else:
    301       raise TypeError("Expected %s, got %s of type '%s' instead." %
    --> 302                       (dtype.name, repr(mismatch), type(mismatch).__name__))
    303 
    304 

TypeError: Expected int32, got list containing Tensors of type '_Message' instead.

Я пробовал обновлять shadoworflow в виртуальном env bash Anaconda, но он говорит, что он уже обновлен:

mysite heathercohen$ pip install tensorflow --upgrade
Requirement already up-to-date: tensorflow in /usr/local/lib/python3.6/site-packages (1.10.1)
Requirement already satisfied, skipping upgrade: six>=1.10.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (1.11.0)
Requirement already satisfied, skipping upgrade: gast>=0.2.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (0.2.0)
Requirement already satisfied, skipping upgrade: absl-py>=0.1.6 in /usr/local/lib/python3.6/site-packages (from tensorflow) (0.4.0)
Requirement already satisfied, skipping upgrade: setuptools<=39.1.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (39.1.0)
Requirement already satisfied, skipping upgrade: grpcio>=1.8.6 in /usr/local/lib/python3.6/site-packages (from tensorflow) (1.14.1)
Requirement already satisfied, skipping upgrade: protobuf>=3.6.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (3.6.1)
Requirement already satisfied, skipping upgrade: astor>=0.6.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (0.7.1)
Requirement already satisfied, skipping upgrade: numpy<=1.14.5,>=1.13.3 in /usr/local/lib/python3.6/site-packages (from tensorflow) (1.14.5)
Requirement already satisfied, skipping upgrade: wheel>=0.26 in /usr/local/lib/python3.6/site-packages (from tensorflow) (0.31.1)
Requirement already satisfied, skipping upgrade: termcolor>=1.1.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (1.1.0)
Requirement already satisfied, skipping upgrade: tensorboard<1.11.0,>=1.10.0 in /usr/local/lib/python3.6/site-packages (from tensorflow) (1.10.0)
Requirement already satisfied, skipping upgrade: markdown>=2.6.8 in /usr/local/lib/python3.6/site-packages (from tensorboard<1.11.0,>=1.10.0->tensorflow) (2.6.11)
Requirement already satisfied, skipping upgrade: werkzeug>=0.11.10 in /usr/local/lib/python3.6/site-packages (from tensorboard<1.11.0,>=1.10.0->tensorflow) (0.14.1)

Когда я вызываю библиотеку в блокноте jupyter, что в том же env, хотя, я получаю

TensorFlow version: 0.12.0

Я также попытался обновить его непосредственно из ноутбука jupyter:

import sys
!{sys.executable} -m pip install --upgrade tensorflow


Requirement already up-to-date: tensorflow in /Users/heathercohen/anaconda/envs/dataweekends/lib/python3.7/site-packages (0.12.0)
Requirement already satisfied, skipping upgrade: protobuf==3.1.0 in /Users/heathercohen/anaconda/envs/dataweekends/lib/python3.7/site-packages (from tensorflow) (3.1.0)
Requirement already satisfied, skipping upgrade: wheel>=0.26 in /Users/heathercohen/anaconda/envs/dataweekends/lib/python3.7/site-packages (from tensorflow) (0.31.1)
Requirement already satisfied, skipping upgrade: numpy>=1.11.0 in /Users/heathercohen/anaconda/envs/dataweekends/lib/python3.7/site-packages (from tensorflow) (1.15.0)
Requirement already satisfied, skipping upgrade: six>=1.10.0 in /Users/heathercohen/anaconda/envs/dataweekends/lib/python3.7/site-packages (from tensorflow) (1.11.0)
Requirement already satisfied, skipping upgrade: setuptools in /Users/heathercohen/anaconda/envs/dataweekends/lib/python3.7/site-packages (from protobuf==3.1.0->tensorflow) (40.0.0)

Может ли кто-нибудь подтвердить, действительно ли проблема является версией тензорного потока, и если да, то как я могу ее обновить, когда эти попытки не удались?

UPDATE: мне удалось установить fiforflow 1.4.1 через pip3, и теперь я получаю следующую ошибку после вышеупомянутого бита кода:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-3e683776aec4> in <module>()
  1 model = Sequential()
----> 2 model.add(LSTM(400, input_shape=(X_modified.shape[1], X_modified.shape[2]), return_sequences=True))
  3 model.add(Dropout(0.2))
  4 model.add(LSTM(400))
  5 model.add(Dropout(0.2))

/usr/local/lib/python3.6/site-packages/keras/engine/sequential.py in add(self, layer)
162                     # and create the node connecting the current layer
163                     # to the input layer we just created.
--> 164                     layer(x)
165                     set_inputs = True
166                 else:

/usr/local/lib/python3.6/site-packages/keras/layers/recurrent.py in __call__(self, inputs, initial_state, constants, **kwargs)
498 
499         if initial_state is None and constants is None:
--> 500             return super(RNN, self).__call__(inputs, **kwargs)
501 
502         # If any of 'initial_state' or 'constants' are specified and are Keras

/usr/local/lib/python3.6/site-packages/keras/engine/base_layer.py in __call__(self, inputs, **kwargs)
455             # Actually call the layer,
456             # collecting output(s), mask(s), and shape(s).
--> 457             output = self.call(inputs, **kwargs)
458             output_mask = self.compute_mask(inputs, previous_mask)
459 

/usr/local/lib/python3.6/site-packages/keras/layers/recurrent.py in call(self, inputs, mask, training, initial_state)
   2110                                       mask=mask,
   2111                                       training=training,
-> 2112                                       initial_state=initial_state)
   2113 
   2114     @property

/usr/local/lib/python3.6/site-packages/keras/layers/recurrent.py in call(self, inputs, mask, training, initial_state, constants)
607                                              mask=mask,
608                                              unroll=self.unroll,
--> 609                                              input_length=timesteps)
610         if self.stateful:
611             updates = []

/usr/local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in rnn(step_function, inputs, initial_states, go_backwards, mask, constants, unroll, input_length)
   2960             parallel_iterations=32,
   2961             swap_memory=True,
-> 2962             maximum_iterations=input_length)
   2963         last_time = final_outputs[0]
   2964         output_ta = final_outputs[1]

TypeError: while_loop() got an unexpected keyword argument 'maximum_iterations'
Теги:
tensorflow

1 ответ

0

Решается путем удаления keras и переустановки при форсировании необходимой версии

pip3 uninstall keras
pip3 install keras==2.1.2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню