我的精力有限,不可能把一种错误出现的所有情况都列出来,并提供相对应的解决方案,还望乞恕罪。
描述:在做多任务学习的实验中,使用Keras搭建多任务学习框架。出现:
TypeError:'tuple' object has no attribute 'ndim'
我是百思不得其解呀,‘tuple‘是元组,是数据,数据结构,和数据有关,我也没有用元组呀,错误何在。这个网络结构在原来是可以进行相应的实验的。后来,要更换数据,还是使用这个结构。
我使用,两个训练集,有关测试集。
我是一步一步的改动来发现错误出现在哪里,笨办法,本人大白菜一枚。发现,问题在val这里:
x_train = [x1_train, x2_train]
y_train = [y1_train, y2_train]
val = ([x_val], [y_val])
hist = model.fit(x_train, y_train, validation_data=val, epochs=200, batch_size=64, verbose=2, shuffle=True)
改成:
x_train = [x1_train, x2_train]
y_train = [y1_train, y2_train]
val = ([x_val, x_val], [y_val, y_val])
hist = model.fit(x_train, y_train, validation_data=val, epochs=200, batch_size=64, verbose=2, shuffle=True)
总结:不管是训练集还是测试集,网络结构是双入双出,数据也应该按照这样的规则来读取输入。