Ответ 1
Используйте модуль keras из тензорного потока следующим образом:
import tensorflow as tf
Классы импорта
from tensorflow.python.keras.layers import Input, Dense
или использовать напрямую
dense = tf.keras.layers.Dense(...)
import tensorflow as tf
import tensorflow
from tensorflow import keras
from keras.layers import Dense
Я получаю ошибку ниже
from keras.layers import Input, Dense
Traceback (most recent call last):
File "<ipython-input-6-b5da44e251a5>", line 1, in <module>
from keras.layers import Input, Dense
ModuleNotFoundError: No module named 'keras'
Как это решить?
Примечание. Я использую Tensorflow версии 1.4.
Используйте модуль keras из тензорного потока следующим образом:
import tensorflow as tf
Классы импорта
from tensorflow.python.keras.layers import Input, Dense
или использовать напрямую
dense = tf.keras.layers.Dense(...)
Попробуйте from tensorflow.python import keras
Благодаря этому вы можете легко изменить код, зависящий от keras, на тензорный поток за одну строчку.
Вы также можете попробовать from tensorflow.contrib import keras
. Это работает на tenorflow 1.3
Отредактировано: для tenorflow 1.10 и выше вы можете использовать import tensorflow.keras as keras
, чтобы получить кера в тензорном потоке.
Для простоты я возьму две версии кода в keras и tf.keras. Примером здесь является простая модель нейронной сети с различными слоями.
В Keras (v2.1.5)
from keras.models import Sequential
from keras.layers import Dense
def get_model(n_x, n_h1, n_h2):
model = Sequential()
model.add(Dense(n_h1, input_dim=n_x, activation='relu'))
model.add(Dense(n_h2, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
return model
В тф.керас (v1.9)
import tensorflow as tf
def get_model(n_x, n_h1, n_h2):
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(n_h1, input_dim=n_x, activation='relu'))
model.add(tf.keras.layers.Dense(n_h2, activation='relu'))
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(4, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
return model
или он может быть импортирован следующим образом вместо вышеупомянутого способа
from tensorflow.keras.layers import Dense
Официальная документация tf.keras
Примечание: версия TensorFlow составляет 1.9
У меня похожая проблема с импортом этих библиотек. Я использую Anaconda Navigator 1.8.2 с Spyder 3.2.8.
Мой код следующий:
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import math
#from tf.keras.models import Sequential # This does not work!
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import InputLayer, Input
from tensorflow.python.keras.layers import Reshape, MaxPooling2D
from tensorflow.python.keras.layers import Conv2D, Dense, Flatten
Я получаю следующую ошибку:
from tensorflow.python.keras.models import Sequential
ModuleNotFoundError: No module named 'tensorflow.python.keras'
Я решаю это стирание tennsflow.python
С помощью этого кода я решаю ошибку:
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import math
#from tf.keras.models import Sequential # This does not work!
from keras.models import Sequential
from keras.layers import InputLayer, Input
from keras.layers import Reshape, MaxPooling2D
from keras.layers import Conv2D, Dense, Flatten
у меня это работало в tenorflow == 1.4.0 "из кеора импорта tenorflow.python"