首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow错误:序列化消息失败。用于多模态数据集

Tensorflow错误:序列化消息失败。用于多模态数据集
EN

Stack Overflow用户
提问于 2022-02-28 11:35:49
回答 1查看 64关注 0票数 0

我正在尝试训练一个模型,在Colab上使用TPU,它将使用两个np.ndarray输入,一个用于形状的图像,(150,150,3),另一个用于形状的音频谱图图像(259,128,1)。现在,我已经使用NumPy数组创建了数据集,如下所示:

代码语言:javascript
复制
trainX = [train_image_array, train_spect_array]
trainY = labels_array

这里的每一个形状如下:-

代码语言:javascript
复制
train_image_array.shape = (86802, 150, 150, 3)
train_spect_array.shape = (86802, 259, 128, 1)
labels_array.shape = (86802,)

我也有一个类似的数据集用于测试,而不是86K样本,它有9K样本。因此,当我试图评估我的测试数据模型时,它是有效的,但当我试图训练或评估我的训练数据模型时,它显示:-

代码语言:javascript
复制
<ipython-input-20-9240f9fc84df> in runModel(model, trainX, trainY, testX, testY, patience, resetWeights, checkpointPath, epochs, save_checkpoint, batch_size, generator, save_weights, save_weights_path, metrics)
     76         model.evaluate(testX, testY, batch_size=batch_size)
     77         # model.evaluate(trainX, trainY, batch_size=batch_size)
---> 78         history = model.fit(trainX, trainY, epochs=epochs, batch_size=batch_size, validation_data=(testX, testY), shuffle=True, callbacks=callbacks)
     79         # model.evaluate(trainX, trainY, batch_size=batch_size)
     80         model.evaluate(testX, testY, batch_size=batch_size)

/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py in error_handler(*args, **kwargs)
     65     except Exception as e:  # pylint: disable=broad-except
     66       filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67       raise e.with_traceback(filtered_tb) from None
     68     finally:
     69       del filtered_tb

/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py in convert_to_eager_tensor(value, ctx, dtype)
    100       dtype = dtypes.as_dtype(dtype).as_datatype_enum
    101   ctx.ensure_initialized()
--> 102   return ops.EagerTensor(value, ctx.device_name, dtype)
    103 
    104

在这里,runModel(...)是我的函数,它由model.evaluatemodel.fit、图形绘制等组成,主要问题在model.fit(trainX, trainY .. )。同样的错误出现在model.evaluate(trainX, trainY, .. )上。我认为它可能只出现在model.evaluate上,所以我对它进行了评论,但我错了‍♂️。有谁可以帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-24 17:05:25

我为这个问题找到的唯一解决方案是,对于非常大的数据集,我们应该创建.tfrecord文件并与它们一起使用TensorFlow数据集。此外,当使用TPU时,我们需要使用一个桶将我们的.tfrecord文件保存在中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71294432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档