我正在尝试运行代码:
from keras.datasets import imdb as im
from keras.preprocessing import sequence as seq
from keras.models import Sequential
from keras.layers import Embedding
from keras.layers import LSTM
from keras.layers import Dense
train_set, test_set = im.load_data(num_words = 10000)
X_train, y_train = train_set
X_test, y_test = test_set
X_train_padded = seq.pad_sequences(X_train, maxlen = 100)
X_test_padded = seq.pad_sequences(X_test, maxlen = 100)
model = Sequential()
model.add(Embedding(input_dim=10000, output_dim=128))
model.add(LSTM(units=128))
model.add(Dense(units=1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
scores = model.fit(X_train_padded,y_train)
当我运行代码时,它给我一条消息:
I tensorflow/core/platform/cpu_feature_guard.cc:145] 此 TensorFlow 二进制文件使用 Intel(R) MKL-DNN 进行了优化,可在性能关键型操作中使用以下 CPU 指令: SSE4.1 SSE4.2 AVX AVX2 FMA
要在非MKL-DNN操作中启用它们,请使用适当的编译器标志重建TensorFlow。
I tensor flow/core/common _ runtime/process _ util . cc:115]使用默认inter op设置创建新线程池:4。使用inter_op_parallelism_threads进行调整以获得最佳性能。
我不明白问题是什么以及我下一步应该做什么。我安装了“tenserflow”包(1.14.0),但这并不能解决问题。
我看过这个参考资料,但我不知道我在找什么:
https://stackoverflow.com/questions/41293077/how-to-compile-tensorflow-with-sse4-2-and-avx-instructions
有人能帮我吗?谢了。
我的配置:osx-64,MacOS Mojave v.10.14.6,Python 3.7 with Spyder with Anaconda,conda版本:4.7.12
您可以忽略该消息,一切都会正常工作。
据我从 https://github.com/tensorflow/tensorflow/pull/24782/commits/7faefa4bb665e115cc744d7895a407338624993f 收集到,当TensorFlow在MKL-DNN支持下编译时(根据您的消息,确实如此),MKL-DNN将负责使用所有可用的CPU性能功能。因此,TensorFlow没有被编译为使用它们并不重要。
这可能无法回答您提出的确切问题,但是在运行类似任务时,我遇到了非常相似的错误消息。
除了上面的错误消息,我还收到了以下错误消息:
OMP:错误#15:初始化libiomp5.dylib,但发现libiomp5.dylib已经初始化。OMP:提示这意味着OpenMP运行时的多个副本已链接到程序中。这是危险的,因为它会降低性能或导致不正确的结果。最好的做法是确保只有一个OpenMP运行时链接到进程中,例如通过避免在任何库中静态链接OpenMP运行时。作为一种不安全、不受支持、未记录的解决方法,您可以设置环境变量KMP_DUPLICATE_LIB_OK=TRUE以允许程序继续执行,但这可能会导致崩溃或静默产生不正确的结果。有关详细信息,请参阅http://www.intel.com/software/products/support/.
错误已通过以下方式解决:
conda install nomkl
这是根据这个堆栈溢出帖子