python - 逐元素乘法tenserflow错误
问题描述
我用这种方式制作了我的自动编码器
autoencoder = Sequential()
Atac=Atac.iloc[range(2),range(2)]
autoencoder.add(Dense(minFeature, activation='relu',name="encoder4",input_shape=(Atac.shape[1],),kernel_constraint=prova()))
autoencoder.add(Dense(Atac.shape[1], activation='relu',name="decoder4",kernel_constraint=prova()))
autoencoder.compile(optimizer=keras.optimizers.Adam( lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0), loss='mean_squared_error')
autoencoder.summary()
autoencoder_train = autoencoder.fit(Atac, Atac, batch_size=256, epochs=1,validation_data=(Atac, Atac))
我使用以下 kernel_constraint 函数:
class prova(constraints.Constraint):
def __call__(self, w):
#return tf.math.multiply(w,tf.constant(np.asarray(relationMatrix),tf.float32))
return tf.math.multiply(w,tf.transpose(tf.constant(np.asarray(relationMatrix),tf.float32)))
但是太疯狂了,如果我使用第一个 multilpy 我有以下错误:
ValueError: Dimensions must be equal, but are 795 and 2 for 'training_63/Adam/Mul_17' (op: 'Mul') with input shapes: [795,2],
[2,795]。
如果我使用第二个乘法
ValueError:尺寸必须相等,但对于输入形状为 [2,795]、[795,2] 的“training_64/Adam/Mul_6”(操作:“Mul”),尺寸必须是 2 和 795。
我无法理解错误在哪里。先感谢您
解决方案
推荐阅读
- java - 如何将 jre8 与 springboot 应用程序捆绑在一起以在安装了以前的 java 版本的服务器上运行它?
- amazon-web-services - AWS cognito Json Web Token 和 Json Web Key
- android - 失败 [INSTALL_FAILED_NO_MATCHING_ABIS: 无法提取本机库,res=-113]
- sqlite - SQLite3 如何将 IN 运算符与 LIKE 运算符结合起来以获取与子查询匹配的部分文本?
- php - 在条件下运行中间件 - Laravel
- python - 如何在python中创建具有许多标准化浮点值的数组
- arduino - ESP8266 网状网络
- java - Java 8,比较两张地图并返回结果
- javascript - 从 Excel VBA 调用 JavaScript oncontextmenu
- .net - 如何处理 .Net 核心中的 Twilio 回调响应?