我正在尝试使用 Keras 在 R 中实现深度学习模型。假设我有一个人脸数据集和一个包含有关人的年龄、性别和种族信息的 CSV。我想训练模型从照片中预测一个人的年龄。
为此,我必须使用卷积神经网络。这是我的伪代码:
library(keras)
model <- keras_model_sequential()
model %>% ## define CNN model’s architecture.
## I will figure this out later
# configure model
model %>% compile(
loss='mean_squared_error',
optimizer='adam',
metrics='mae'
)
history <- model %>% fit(
# train_array is a 300x100x100x1 array
# train_array stores the pixel values of 300 grayscale images
# of resolution 100x100
x = train_array, y = ???,
epochs = 10, batch_size = 30,
)
我的问题是关于???上面标记的。我有三个有用的信息来训练模型:age、gender和ethnicity。如何将此信息添加到模型中?同样,我希望模型能够预测一个单一的年龄预测。
我查看了 Keras 拟合函数文档,但无法弄清楚。它说这y是一个“目标(标签)数据的向量、矩阵或数组(如果模型有多个输出,则为列表)......”
编辑:这是有道理的。现在的问题是如何设置x列表?这是我到目前为止所拥有的:
trainFeatures <- list(pixels = train_array, gender = as.factor(trainGenders), ethnicity = as.factor(trainEthnicity))
history <- model %>% fit(
x = trainFeatures, y = trainAge,
epochs = 10, batch_size = 30,
)
我下载了一个玩具数据集并建立了一个快速的 CNN 模型。我收到以下错误消息:
Error in py_get_attr_impl(x, name, silent) :
AttributeError: 'list' object has no attribute 'dtype'