我正在尝试使用MacBook Pro和iMac计算机上的标准深度学习模型,然后再将它们放在Linux GPU服务器上运行。我在py27 conda环境中处理所有这些系统。在所有系统上使用最新版本的Keras和Tensorflow(但由于服务器是linux机器并且还有张量flow-gpu版本,因此不同的发行版)。当我运行简单的CNN时,在所有平台上,从构建到培训都很有效。但是,尝试RNN,我在模型构建点的linux服务器上获得Segmentation Fault,我在其中添加了一个双向(LSTM或GRU)层。相同的代码在我的两个Mac系统上运行完美。我很困惑,因为CNN在Linux服务器的GPU上运行良好,tensorflow-gpu linux发行版中是否存在与周期性图层相关的错误?
def prepare_rnn_model_1(word_index, embedding_matrix):
print("*** 1")
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=True)
print("*** 2")
sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
print("*** 3")
embedded_sequences = embedding_layer(sequence_input)
print("*** 4")
l_lstm = Bidirectional(LSTM(100))(embedded_sequences)
print("*** 5")
preds = Dense(CLASSES, activation='softmax')(l_lstm)
print("*** 6")
model = Model(sequence_input, preds)
print("*** 7")
model.compile(loss='categorical_crossentropy',
optimizer='rmsprop',
metrics=['acc'])
return model