gpt4 book ai didi

tensorflow - 将 3D 张量转换为 4D

转载 作者:行者123 更新时间:2023-12-04 15:43:26 25 4
gpt4 key购买 nike

我正在使用 VGG16 模型,它需要一个 4D 张量作为输入。当我打电话时model.fit(xtrain, ytrain, ...)我的 xtrain是 3D 张量列表 [size, size, features] - 所以在这种情况下:[224,224,3]
我想要的是带有 [len(images), size, size, features] 的 4D 张量

我如何修改我的代码才能到达那里?

我试过 tf.expand_dimstf.concant但它没有用。

# Transforming my image to a 3D Tensor
image = tf.io.read_file(image)
image = tf.image.decode_jpeg(image, channels=3)
image = tf.image.resize(image, [IMG_SIZE, IMG_SIZE])
image = image / 255.0
model.fit 之后的错误消息:

Error when checking input: expected input_1 to have 4 dimensions, but got array with shape (224, 224, 3)

最佳答案

看起来您只阅读了一张图片并传递了它。如果是这种情况,您可以将尺寸 1 添加到图像的第一个轴。有很多方法可以做到这一点。

使用 reshape :

image = image.reshape(1, 224, 224, 3)

使用一些 fancy numpy slicing notation添加一个轴(个人最喜欢的):

image = image[None, ...]

使用 numpy.expand_dims() 正如阿比 git 的回答所解释的那样。

我想你想在里面阅读一堆图像。可能是您的输入过程有问题?你能把你的阅读包​​裹在一个循环中并阅读多个文件吗?就像是:

images = []
for file in image_files:
image = tf.io.read_file(file)
# ...
images.append(image)
images = np.asarray(images)

关于tensorflow - 将 3D 张量转换为 4D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56874677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com