81 votes

Comment importer keras depuis tf.keras dans Tensorflow ?

import tensorflow as tf
import tensorflow 

from tensorflow import keras
from keras.layers import Dense

J'obtiens l'erreur suivante

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'

Comment puis-je résoudre ce problème ?

Note : J'utilise la version 1.4 de Tensorflow.

129voto

Mihail Burduja Points 1566

Utilisez le module keras de tensorflow comme ceci :

import tensorflow as tf

Classes d'importation

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

ou utiliser directement

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

8voto

Ramesh Kamath Points 49

Essayez from tensorflow.python import keras

Avec cela, vous pouvez facilement changer le code dépendant de Keras en tensorflow en un changement de ligne.

Vous pouvez également essayer from tensorflow.contrib import keras . Cela fonctionne sur tensorflow 1.3

Modifié : pour tensorflow 1.10.0 vous pouvez utiliser tensorflow.keras pour obtenir keras dans tensorflow.

5voto

Ruthwik Points 359

Pour faire simple, je vais prendre les deux versions du code dans keras et tf.keras. L'exemple ici est un modèle de réseau neuronal simple avec différentes couches.

Sur 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

Sur tf.keras (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

ou il peut être importé de la manière suivante au lieu de la manière mentionnée ci-dessus

from tensorflow.keras.layers import Dense

La documentation officielle de tf.keras

Note : La version de TensorFlow est 1.9.

2voto

Umair Qadir Points 19

ceci a fonctionné pour moi dans tensorflow==1.4.0 "from tensorflow.python import keras"

1voto

pfRodenas Points 88

J'ai un problème similaire pour importer ces librairies. J'utilise Anaconda Navigator 1.8.2 avec Spyder 3.2.8.

Mon code est le suivant :

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

Je reçois l'erreur suivante :

from tensorflow.python.keras.models import Sequential

ModuleNotFoundError: No module named 'tensorflow.python.keras'

Je résous ce problème en effaçant tensorflow.python

Avec ce code, je résous l'erreur :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X