У меня есть keras Ошибка Я перепробовал множество решений в stackoverflow, но это не работает.
Я попытался изменить версии tenorflow и keras.
Windows и Linux (Ubuntu и CENTS) в Docker - не работает та же ошибка
(почему? Некоторые ПК работают или ОС в первый раз)
Я много пробовалвещей, кроме кода ниже.
def train_model(self,lr,input_size,dimension):
K.get_session().run(tf.global_variables_initializer())
K.get_session().run(tf.local_variables_initializer())
init = K.tf.global_variables_initializer()
K.get_session().run(init)
# K.manual_variable_initialization(True)
# init_op = tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())
# sess = K.get_session()
# sess.run(tf.initialize_all_variables())
# sess.run(tf.global_variables_initializer())
# K.get_session(sess).run(tf.local_variables_initializer())
word_vector = Sequential(name="word_vector")
tag_one_hot = Sequential(name="tag_one_hot")
# wordvector
word_vector.add(Conv2D(16, kernel_size=(2, dimension),activation='relu',padding="SAME",input_shape=[input_size,dimension,1],kernel_regularizer=regularizers.l2(0.001),
kernel_initializer= initializers.RandomNormal(mean=0.0, stddev=1e-2, seed=None)))
word_vector.add(Dropout(0.5))
word_vector.add(Conv2D(32, (3, dimension), activation='relu', padding="VALID",kernel_regularizer=regularizers.l2(0.001),
kernel_initializer=initializers.RandomNormal(mean=0.0, stddev=1e-2, seed=None)))
word_vector.add(MaxPooling2D(pool_size=(20, 1), strides=(1,1)))
word_vector.add(Dropout(0.5))
word_vector.add(Flatten())
# tagset
tag_one_hot.add(Dense(256, input_dim=input_size*56, activation='relu',kernel_initializer=initializers.RandomNormal(mean=0.0,
stddev=1e-2, seed=None)))
tag_one_hot.add(Dropout(0.5))
tag_one_hot.add(Dense(256, input_dim=256, activation='relu',kernel_initializer=initializers.RandomNormal(mean=0.0,
stddev=1e-2, seed=None)))
tag_one_hot.add(Dropout(0.5))
tag_one_hot.add(Dense(256, input_dim=256, activation='relu',kernel_initializer=initializers.RandomNormal(mean=0.0,
stddev=1e-2, seed=None)))
tag_one_hot.add(Dropout(0.5))
# merge
concat = Concatenate(axis=1)([word_vector.output,tag_one_hot.output])
merged = Dense(2048,activation='relu',kernel_initializer=initializers.RandomNormal(mean=0.0,
stddev=1e-2, seed=None))(concat)
merged = Dropout(0.5)(merged)
merged = Dense(2048, activation='relu', kernel_initializer=initializers.RandomNormal(mean=0.0, stddev=1e-2, seed=None))(merged)
merged = Dropout(0.5)(merged)
merged = Dense(1024, activation='relu', kernel_initializer=initializers.RandomNormal(mean=0.0, stddev=1e-2, seed=None))(merged)
merged = Dropout(0.5)(merged)
merged = Dense(3, activation='sigmoid', kernel_initializer=initializers.RandomNormal(mean=0.0, stddev=1e-2, seed=None))(merged)
#last model
self.model = Model(inputs=[word_vector.input,tag_one_hot.input],outputs=[merged],name="full_model")
adam = optimizers.Adam(lr=lr, beta_1=0.9, beta_2=0.999, epsilon=1e-8)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
K.set_session(sess)
self.model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy'])
Это код ОШИБКИ
Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ keras \ engine \ training.py", строка 1039, в нужном виде validation_steps = validation_steps) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ keras \ engine \ training_arrays.py", строка 199, в файле fit_loop outs = f (ins_batch) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages"\ keras \ backend \ tenorflow_backend.py ", строка 2715, в вызов , возврат self._call (входные данные). Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ keras \ backend \ensorflow_backend.py", строка 2675, в файле _call fetched = self._callable_fn (* array_vals)" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ensorflow \ python \ client \ session.py ", строка 1454, в вызове self._session._session, self._handle, args, status, None) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ensorflow \ python \ framework \ errors_impl.py", строка 519, в выход c_api.TF_GetCode (self.status.status)) tenorflow.python.framework.errors_impl.FailedPreconditionError: Attвозможность использовать неинициализированное значение обучения / Адам / Переменная_22 [[Узел: обучение / Адам / Переменная_22 / чтение = IdentityT = DT_FLOAT, _class = ["loc: @ training / Adam / Assign_13"], _device = "/ job: localhost / replica: 0 / задача: 0 / устройство: ЦП: 0" ]]