Как импортировать keras из tf.keras в Tensorflow?

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.

Ответ 1

Используйте модуль keras из тензорного потока следующим образом:

import tensorflow as tf

Классы импорта

from tensorflow.python.keras.layers import Input, Dense

или использовать напрямую

dense = tf.keras.layers.Dense(...)

Ответ 2

Попробуйте from tensorflow.python import keras

Благодаря этому вы можете легко изменить код, зависящий от keras, на тензорный поток за одну строчку.

Вы также можете попробовать from tensorflow.contrib import keras. Это работает на tenorflow 1.3

Отредактировано: для tenorflow 1.10 и выше вы можете использовать import tensorflow.keras as keras, чтобы получить кера в тензорном потоке.

Ответ 3

Для простоты я возьму две версии кода в 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

Ответ 4

У меня похожая проблема с импортом этих библиотек. Я использую 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

Ответ 5

у меня это работало в tenorflow == 1.4.0 "из кеора импорта tenorflow.python"