我收到此错误“模块“tensorflow._api.v1.keras.layers”

执行以下代码时出现上述错误。我正在尝试在下面的 tensorflow 神经网络实现教程中解决这个问题。 https://www.datacamp.com/community/tutorials/tensorflow-tutorial


def load_data(data_directory):

directories = [d for d in os.listdir(data_directory) 

               if os.path.isdir(os.path.join(data_directory, d))]

labels = []

images = []

for d in directories:

    label_directory = os.path.join(data_directory, d)

    file_names = [os.path.join(label_directory, f) 

                  for f in os.listdir(label_directory) 

                  if f.endswith(".ppm")]

    for f in file_names:

        images.append(skimage.data.imread(f))

        labels.append(int(d))

return images, labels


import os

import skimage

from skimage import transform

from skimage.color import rgb2gray

import numpy as np

import keras

from keras import layers

from keras.layers import Dense

ROOT_PATH = "C://Users//Jay//AppData//Local//Programs//Python//Python37//Scriptcodes//BelgianSignals"

train_data_directory = os.path.join(ROOT_PATH, "Training")

test_data_directory = os.path.join(ROOT_PATH, "Testing")


images, labels = load_data(train_data_directory)



# Print the `labels` dimensions

print(np.array(labels))


# Print the number of `labels`'s elements

print(np.array(labels).size)


# Count the number of labels

print(len(set(np.array(labels))))


# Print the `images` dimensions

print(np.array(images))


# Print the number of `images`'s elements

print(np.array(images).size)


# Print the first instance of `images`

np.array(images)[0]


images28 = [transform.resize(image, (28, 28)) for image in images]


images28 = np.array(images28)


images28 = rgb2gray(images28)


# Import `tensorflow` 

import tensorflow as tf 


# Initialize placeholders 

x = tf.placeholder(dtype = tf.float32, shape = [None, 28, 28])

y = tf.placeholder(dtype = tf.int32, shape = [None])


# Flatten the input data

images_flat = tf.keras.layers.flatten(x)


# Fully connected layer 

logits = tf.contrib.layers.dense(images_flat, 62, tf.nn.relu)



温温酱
浏览 312回答 2
2回答

吃鸡游戏

任何一个 from keras.layers import Flatten并使用Flatten()(input)或者简单地使用 tf.keras.layers.Flatten()(input)

跃然一笑

新的(“keras 作为默认 API”)方法会让你使用 keras 层,tf.keras.layers.Flatten但你似乎错过了一些细微差别(评论中没有提到)。tf.keras.layers.Flatten() 实际上返回一个 keras 层(可调用)对象,该对象又需要与您的前一层一起调用。所以更像是这样的:# Flatten the input dataflatten_layer = tf.keras.layers.Flatten()images_flat = flatten_layer(x)或者,为简洁起见,只是:# Flatten the input dataimages_flat = tf.keras.layers.Flatten()(x)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python