属性错误:模块“张量流”没有属性“层”

我正在尝试实现VGG,但遇到上述奇怪的错误。我在 Ubuntu 上运行 TFv2。这可能是因为我没有运行CUDA吗?


代码来自此处。


from __future__ import absolute_import

from __future__ import division

from __future__ import print_function


# Imports


import time

import numpy as np

import tensorflow as tf

import matplotlib.pyplot as plt

# tf.logging.set_verbosity(tf.logging.INFO)


from tensorflow.keras.layers import Conv2D, Dense, Flatten


np.random.seed(1)


mnist = tf.keras.datasets.mnist


(train_data, train_labels), (eval_data, eval_labels) = mnist.load_data()


train_data, train_labels = train_data / 255.0, train_labels / 255.0


# Add a channels dimension

train_data = train_data[..., tf.newaxis]

train_labels = train_labels[..., tf.newaxis]


index = 7

plt.imshow(train_data[index].reshape(28, 28))

plt.show()

time.sleep(5);

print("y = " + str(np.squeeze(train_labels[index])))


print ("number of training examples = " + str(train_data.shape[0]))

print ("number of evaluation examples = " + str(eval_data.shape[0]))

print ("X_train shape: " + str(train_data.shape))

print ("Y_train shape: " + str(train_labels.shape))

print ("X_test shape: " + str(eval_data.shape))

print ("Y_test shape: " + str(eval_labels.shape))


print("done")


蓝山帝景
浏览 151回答 3
3回答

富国沪深

您使用的代码是用Tensorflow v1.x编写的,并且与Tensorflow v2不兼容。最简单的解决方案可能是降级到tensorflow v1的版本,以按原样运行代码。另一种选择是可以按照本指南将代码从 v1 迁移到 v2。第三种选择是使用该模块来获得一些复古兼容性。例如,在 Tensorflow v2 中不再存在。您可以使用(例如,请参阅 Conv2D 函数)来代替,但这是一个临时修复,因为这些函数将在将来的版本中删除。tf.compattf.layerstf.compat.v1.layers

紫衣仙女

您可以使用 postfix compat.v1 使为 tensorflow 1.x 编写的代码与较新版本一起使用。在你的情况下,这可以通过改变来实现:tf.layers.conv2d自tf.compat.v1.layers.conv2d您可以在此处阅读有关将张量流 v1.x 迁移到张量流 v2.x 的更多信息:https://www.tensorflow.org/guide/migrate

喵喔喔

使用 tensorflow 1.x 而不是 tensorflow 2.x 版本。但请记住,Python 3.8上没有2.x版本。使用具有tensorflow 1.x的Python的较低版本。python3.6 -m pip install tensorflow==1.8.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python