TensorFlow 2.5.0与NumPy 1.21+不兼容?(2021-10-05) [英] TensorFlow 2.5.0 incompatibility with NumPy 1.21+? (2021-10-05)

查看:19
本文介绍了TensorFlow 2.5.0与NumPy 1.21+不兼容?(2021-10-05)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给每一个偶然发现这一点的人:

我最近在做图像分类(将CNN添加到一些已标记的数据上),我想使用KERAS的模块进行数据增强。但是,我抛出了一个NotImplementedError。更具体地说,它逐字如下:

NotImplementedError:无法将符号张量(sequential_3/sequential/random_rotation/rotation_matrix/strided_slice:0)转换为数字数组。此错误可能表示您正试图将张量传递给不受支持的NumPy调用

以下是我为增强层编写的代码:

angle = 15
data_augmentation = keras.Sequential([
    layers.experimental.preprocessing.RandomFlip('horizontal'),
    layers.experimental.preprocessing.RandomRotation(angle/360)
])

所以我想要水平翻转我所有的图像并随机旋转15度。我直接把这条信息输入我的CNN:

layers_2 = [
    #image augmentation layer
    data_augmentation,
    
    #convolution layer
    keras.layers.Conv2D(16, 3, padding = 'same', activation = 'relu'),
    keras.layers.MaxPooling2D(),
    keras.layers.Conv2D(32, 3, padding = 'same', activation = 'relu'),
    keras.layers.MaxPooling2D(),
    keras.layers.Conv2D(64, 3, padding = 'same', activation = 'relu'),
    keras.layers.MaxPooling2D(),
    keras.layers.Flatten(),
    
    #dropout for regularization
    keras.layers.Dropout(0.2),
    
    #MLP layer
    keras.layers.Dense(128, activation = 'relu'),
    keras.layers.Dense(64, activation = 'relu'),
    keras.layers.Dense(3, activation = 'softmax')
]

model_2 = keras.Sequential(layers_2)

model_2.compile(optimizer = tf.optimizers.Adam(),
              loss = tf.keras.losses.SparseCategoricalCrossentropy(),
              metrics = [tf.metrics.SparseCategoricalAccuracy()]
)

epochs_2 = 15

#fitting

history_2 = model_2.fit(
    normalized_train_ds,
    validation_data = normalized_val_ds,
    epochs = epochs_2
)

其中Normalized_Train_DSNormalized_Val_DS都是规范化的tensorflow.data.Dataset对象。

必要的上下文:我在我的本地机器上,在配置了Python3.9.7的环境中运行它。我的NumPy版本是1.21.2,我的TensorFlow版本是2.5.0。早在2021年2月,我就遇到过类似的问题,只是他们注意到运行Python3.9.1和TensorFlow 2.4.1,以及NumPy 1.20+的人出现了同样的问题(该问题的链接:https://github.com/tensorflow/tensorflow/issues/47360)。

实际问题:我只是写了一些糟糕的代码,还是我的版本的Python、TensorFlow、NumPy不兼容?我试着安装了之前版本的NumPy(1.20+),但它抛出了同样的问题。如果我在Google Colab笔记本上运行它,这就不再是问题了。

推荐答案

根据GitHub上的此问题,TensorFlow2.5和NumPy 1.20+不兼容。 https://github.com/tensorflow/tensorflow/issues/47691

这篇关于TensorFlow 2.5.0与NumPy 1.21+不兼容?(2021-10-05)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆