web-dev-qa-db-fra.com

Comment importer des keras de tf.keras dans Tensorflow?

import tensorflow as tf
import tensorflow 

from tensorflow import keras
from keras.layers import Dense

Je reçois l'erreur ci-dessous

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 résoudre ce problème?

Note: J'utilise Tensorflow version 1.4

18
GeorgeOfTheRF

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

3
Ramesh Kamath

J'ai un problème similaire d'importer ces libs. 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 cet effacement 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
0
pfRodenas

Pour simplifier, je prendrai 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.

Dans 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

Dans 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

Remarque: la version de TensorFlow est 1.9.

0
Ruthwik