有懂tensorflow的大佬嘛?多输出模型
我创建了一个模型,使用的是预训练模型 xception,数据集是Oxford-IIIT Pet Dataset
该模型已经可以预测出宠物的头部框,我根据需要又增加了一个输出,输出宠物类别,但是训练报错
NotImplementedError: Cannot convert a symbolic Tensor (IteratorGetNext:1) to a numpy array
https://wwlw.lanzouy.com/i5T4f0kxe60j (ipynb文件链接)
# 模型构造
xception = tf.keras.applications.Xception(weights= 'imagenet',
include_top=False,
input_shape=(224,224,3))
inputs = tf.keras.layers.Input(shape=(224,224,3))
x = xception(inputs)
x = tf.keras.layers.GlobalAveragePooling2D()(x)
x1 = tf.keras.layers.Dense(2048, activation='relu')(x)
x1 = tf.keras.layers.Dense(256, activation='relu')(x)
out1 = tf.keras.layers.Dense(1,name='out1')(x1)
out2 = tf.keras.layers.Dense(1,name='out2')(x1)
out3 = tf.keras.layers.Dense(1,name='out3')(x1)
out4 = tf.keras.layers.Dense(1,name='out4')(x1)
prediction =
x2 = tf.keras.layers.Dense(2048,activation='relu')(x)
x2 = tf.keras.layers.Dense(1024,activation='relu')(x2)
out_class = tf.keras.layers.Dense(35,activation='softmax',name='out_class')(x2)
model = tf.keras.models.Model(inputs=inputs,
outputs=)
model.compile(
tf.keras.optimizers.Adam(learning_rate=0.0001),
loss="mse",
metrics=["mae"]
)
Epochs = 3
history = model.fit(train_dataset,
epochs = Epochs,
steps_per_epoch=STEP_PER_EPOCH,
validation_steps=VALIDATION_STEP,
validation_data=test_dataset
)
感觉要分成两个模型? tensorflow 不明觉厉{:1_926:} 一般标签是用数字来输出吧?我不太懂tf但是原来的输出是tensor数组吗?还是说坐标然后自己框出来?如果可以建议输出坐标(x,y,width,height,labelenum),你的dataset是不是把string直接扔进去训练了? tensor转numpy的问题 MIAIONE 发表于 2023-1-14 02:53
一般标签是用数字来输出吧?我不太懂tf但是原来的输出是tensor数组吗?还是说坐标然后自己框出来?如果可以 ...
我感觉差不多是这个原因,最好楼主在stackoverflow搜搜 想法不错,但是在一个模型里输出,要自己设计损失函数。
我最近也对这个感兴趣 想学习python 还有一个问题,你让别人给你看代码,你要把数据集贴上啊。 sunsjw 发表于 2023-1-14 11:29
还有一个问题,你让别人给你看代码,你要把数据集贴上啊。
写了呀,Oxford-IIIT Pet Dataset。
页:
[1]
2