Deb*_*ney 8 regression deep-learning conv-neural-network keras tensorflow
这是一个回归问题,我想从每个尺寸为 224 x 224 的图像生成 5 个浮点值。因此我在最后一层使用具有 5 个节点的全连接网络。但在 keras 中这样做会出现以下错误:
\nimport keras, os\nimport numpy as np\nfrom tensorflow.keras.models import Model\nfrom tensorflow.keras.optimizers import Adam\nfrom tensorflow.keras.layers import Dense, GlobalAveragePooling2D\nfrom tensorflow.keras.applications.inception_v3 import InceptionV3\n\n## data_list = list of four 224x224 numpy arrays\n\ninception = InceptionV3(weights='imagenet', include_top=False)\nx = inception.output\nx = GlobalAveragePooling2D()(x)\nx = Dense(1024, activation='relu')(x)\npredictions = Dense(5, activation='relu')(x)\n\ny = [np.random.random(5),np.random.random(5),np.random.random(5),np.random.random(5)]\n\nmodel = Model(inputs=inception.input, outputs=predictions)\nopt = Adam(lr=0.001)\nmodel.compile(optimizer=opt, loss="mae")\nmodel.fit(data_list, y, verbose=0, epochs=100)\nRun Code Online (Sandbox Code Playgroud)\n错误:
\n\n\nValueError: 数据基数不明确:
\n
\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 x 大小: 224, 224, 224, 224
\n\xc2\xa0\xc2\xa0\xc2\xa0\ xc2\xa0 y 大小: 5, 5, 5, 5
\n确保所有数组包含相同数量的样本。
可能出了什么问题?
\nAnd*_*rey 11
将data_list和转换y为 numpy 数组或张量。
在您的代码中,该列表被视为四个输入,而您的模型只有一个输入 - https://keras.io/api/models/model_training_apis/
添加这些行:
import tensorflow as tf
data_list = tf.stack(data_list)
y = tf.stack(y)
Run Code Online (Sandbox Code Playgroud)
model.fit(np.array(data_list), np.array(y), verbose=0, epochs=100)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50366 次 |
| 最近记录: |