У модуля 'tenorflow' нет атрибута 'заполнитель' из-за Кераса - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь обучить LSTM для доноров. Выберите набор данных, и для этого я использую API Keras. Но когда я запускаю ячейку с архитектурой, она выдает ошибку атрибута. Я знаю, что эта ошибка из-за того, что некоторые старые функции были удалены из tenorflow 2.x. Я также сделал

tf.disable_v2_behavior()

просто чтобы быть уверенным, но я не думаю, что это решит проблему, поскольку именно keras дает мне эту ошибку. Я использовал Sequential для другого проекта CNN, и это сработало. Я очень плохо знаком с глубоким обучением, кера и тензорным потоком, поэтому я не знаю, что мне здесь делать. Вот мой код:

#clearing the graph of tensorflow
tf.keras.backend.clear_session()

#essay part
#input
input_essay = Input(name = 'input_seq_total_text_data', shape=(400,))
#embedidng layer
glove_essay = Embedding(input_dim = vocab_size, output_dim = 100, input_length = 400,
                        weights = [embedding_matrix] , name = 'Emb_text_data', trainable = False)(input_essay)
#LSTM layer
essay_lstm = LSTM(units = 100, name = 'LSTM essay')(glove_essay)
#flatten layer
flatten_essay = Flatten()(essay_lstm)

#state_part
input_state ,flatten_state = column_layer('School_state', 52, 13, 2)

#project_grade_cat part
input_grade_cat ,flatten_grade_cat = column_layer('project_grade_category', 10, 2, 2)

#clean_categories
input_clean_cat ,flatten_clean_cat = column_layer('clean_categories', 16, 4, 2)

#clean_subcategories
input_clean_subcat ,flatten_clean_subcat = column_layer('clean_subcategories', 16, 4, 2)

#teacher prefix
input_prefix ,flatten_prefix = column_layer('teacher_prefix', 6, 1, 2)

#concatenating all the layers
concat_layer = concatenate(inputs = [flatten_essay,
                                     flatten_state,
                                     flatten_grade_cat,
                                     flatten_clean_cat,
                                     flatten_clean_subcat,
                                     flatten_prefix], name = 'Concat')

#Dense layer
dense_a = Dense(units = 64, activation = 'relu', kernel_initializer= 'he_uniform', name = 'dense 1')(concat_layer)
#dropout with 30% dropout rate
dropout_a = Dropout(rate = 0.3)
dense_b = Dense(units = 32, activation = 'relu', kernel_initializer= 'he_uniform', name = 'dense 2')(dropout_a)

#final softmax layer
output = Dense(units = 1, activation = 'sigmoid')(dense_b)
#initializing the model
model = Model(inputs = [input_essay, input_state, input_grade_catinput_clean_cat, input_clean_subcat, input_prefix], output = output )

И это ошибка, которую я получаю

AttributeError                            Traceback (most recent call last)
<ipython-input-28-db20bfcd7b2c> in <module>
      4 #essay part
      5 #input
----> 6 input_essay = Input(name = 'input_seq_total_text_data', shape=(400,))
      7 #embedidng layer
      8 glove_essay = Embedding(input_dim = vocab_size, output_dim = 100, input_length = 400,

~/anaconda3/envs/deep_learning/lib/python3.7/site-packages/keras/engine/input_layer.py in Input(shape, batch_shape, name, dtype, sparse, tensor)
    176                              name=name, dtype=dtype,
    177                              sparse=sparse,
--> 178                              input_tensor=tensor)
    179     # Return tensor including _keras_shape and _keras_history.
    180     # Note that in this case train_output and test_output are the same pointer.

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

~/anaconda3/envs/deep_learning/lib/python3.7/site-packages/keras/engine/input_layer.py in __init__(self, input_shape, batch_size, batch_input_shape, dtype, input_tensor, sparse, name)
     85                                          dtype=dtype,
     86                                          sparse=self.sparse,
---> 87                                          name=self.name)
     88         else:
     89             self.is_placeholder = False

~/anaconda3/envs/deep_learning/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in placeholder(shape, ndim, dtype, sparse, name)
    515         x = tf.sparse_placeholder(dtype, shape=shape, name=name)
    516     else:
--> 517         x = tf.placeholder(dtype, shape=shape, name=name)
    518     x._keras_shape = shape
    519     x._uses_learning_phase = False

AttributeError: module 'tensorflow' has no attribute 'placeholder'

Я застрял здесь без понятия о том, что я должен делать. Так что любая помощь будет оценена.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...