python - 如何使用 numpy 数组值在 Keras 模型中输入张量?
问题描述
我试图用 numpy 数组值提供一个 keras 模型张量。但是张量是 4D,数组是 3D。如何将这个 3D numpy 数组 (128, 128, 3) 转换为 4D (?, 128, 128, 3) 张量?
解决方案
您可以使用 numpy 数组作为 keras 模型的输入。这取决于您的模型,但通常第一个维度是样本数,最后一个维度是 1。
假设您有 1000 个样本,每个样本都有一个形状数组 (128, 128, 3)。您可以使用 np.stack 组合数组。这是一个简化的示例:
a=np.array([[0,1,2],[3,4,5]])
b=np.array([[6,7,8],[9,10,11]])
c=np.stack((a,b)) #shape (2,2,3) with the first 2 representing the number of samples
如果您想重塑数组以将 1 作为附加的最终维度(例如,将形状从 (1000, 128, 128, 3) 更改为 (1000, 128, 128, 3, 1)),您可以执行以下操作:
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], \
X_train.shape[2], X_train.shape[3], 1)
然后可以将其传递给模型。如果您的模型需要将张量传递给它,则可以将数组转换为张量。在 Tensorflow 中,这可以通过 tf.convert_to_tensor- https://www.tensorflow.org/api_docs/python/tf/convert_to_tensor来完成。
推荐阅读
- delphi - Microsoft.WebView2 & Edge
- azure - 我们可以使用 azure blob 存储进行 scylladb 备份吗?
- python - 如何使用python中的线程处理客户端关闭?
- c++ - 如何将 CPP 中的 OpenCV 与 Premake5 链接
- javascript - 当没有结果时,输入字段在 Vue 中失去焦点
- regex - Ruby Regex:字符串开头和结尾的空格
- pandas - 在 Pandas 中在一行中分配日、周和年列
- node.js - gulp.dest 挂起复制一个电子构建的应用程序(macoS)
- python - 当我在 Pandas DataFrame 中使用数据透视函数时,这个奇怪的数字是多少?
- mongodb - 使用 Express 在 MongoDB 中进行 $text 查询所需的文本索引