python-3.x - 完成 GeneratorDataset 迭代器时发生错误:前置条件失败:Python 解释器状态未初始化
问题描述
我知道这个问题已经被问过很多次了,但似乎没有什么能解决我的问题。我有一个用于二进制分类的完全连接的神经网络:
params = {'batch_size': 32,
'n_classes': 2,
'shuffle': True}
training_generator = DataGenerator(partition_X1['train'], partition_X2['train'],labels, **params)
validation_generator = DataGenerator(partition_X1['valid'],partition_X2['valid'], labels, **params)
###First branch:
i1 = Input(shape=(115,))
c1 = Dense(64, activation='relu')(i1)
c1 = Dropout(0.1)(c1)
c1 = Dense(64, activation='relu')(c1)
c1 = Dropout(0.1)(c1)
###Second branch
i2 = Input(shape=(811, ))
c2 = Dense(128, activation='relu')(i2)
c2 = Dropout(0.1)(c2)
c2 = Dense(128, activation='relu')(c2)
c2 = Dropout(0.1)(c2)
###Concatenate
c = concatenate([c1, c2])
x = Dense(128, activation='relu')(c)
x = Dropout(0.1)(x)
x = Dense(128, activation='relu')(x)
x = Dropout(0.1)(x)
output = Dense(1, activation='sigmoid')(x)
model = Model([i1, i2], [output])
model.summary()
##compiling model
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
checkpoint = ModelCheckpoint(modWeightsFilepath, monitor='val_acc', verbose=1, save_best_only=True, save_weights_only=True, mode='auto')
earlystop = EarlyStopping(monitor='val_acc', min_delta=0.001, patience=3, verbose=1, mode='auto')
callbacks_list = [earlystop,checkpoint]
model.fit_generator(generator=training_generator,epochs=30,validation_data=validation_generator,
use_multiprocessing=True,
workers=8,callbacks=callbacks_list)
但是,当我运行模型时,出现以下错误:
2021-06-09 11:29:52.750421: W tensorflow/core/kernels/data/generator_dataset_op.cc:103] Error occurred when finalizing GeneratorDataset iterator: Failed precondition: Python interpreter state is not initialized. The process may be terminated.
上面的另一个错误是:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Matrix size-incompatible: In[0]: [32,115], In[1]: [811,128]
[[node model/dense_2/MatMul (defined at FC_model.py:146) ]] [Op:__inference_train_function_1414]
一个输入的形状是 (811,),另一个是 (115,),标签可以是 0 或 1。我用于生成器的代码是:
def __data_generation(self,list_IDs_temp_X1,list_IDs_temp_X2):
X1 = np.empty((self.batch_size,811))
X2 = np.empty((self.batch_size,115))
y = np.empty((self.batch_size),dtype=int)
for ID in range(len(list_IDs_temp_X1)):
if list_IDs_temp_X1[ID] in self.labels:
X1[ID] = np.load(list_IDs_temp_X1[ID])
X2[ID] = (np.load(list_IDs_temp_X1[ID])).flatten()
print('shape :',X2[ID].shape)
y[ID] = self.labels[list_IDs_temp_snp[ID]]
return X1,X2,y
有人可以解释为什么我会收到错误吗?见解将不胜感激。
解决方案
推荐阅读
- mysql - 完全按照数据库中存储的方式显示结果
- c# - 调用新对象时立即销毁游戏对象
- python - 使用十六进制编码读取 csv 文件
- regex - RegEx for excluding a match with prefix
- xamarin.forms - 如何在 xamarin 表单中实现 htmleditor
- matplotlib - NavigationToolbar2Tk 不显示用于绘图编辑的按钮
- node.js - 如何在nodejs中从一个项目访问swagger api文档到另一个项目并表达?
- sql - 如何提取Postgresql中最后两个括号之间的数据?
- html - 下拉菜单不显示
- csv - 将 CSV 从 SharePoint 移动到 Google Drive 时出现 Power Automate 错误