1 回答

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
錯(cuò)誤出在計(jì)算特征值和特征向量的能量函數(shù)中。
tf.linalg.eigh
計(jì)算張量中最內(nèi)層 N×N 矩陣的特征值和特征向量,滿足 tensor[...,:,:] * v[..., :,i] = e[..., i] * v [...,:,i],對(duì)于 i=0...N-1。
這是來自官方文檔。您對(duì)能量函數(shù)的輸入不滿足這些條件。
可以通過將正確的參數(shù)傳遞給energy函數(shù)來解決此問題
def energy_loss(y_actual,y_predicted):
mtm_actual = tf.linalg.matmul(y_actual,tf.transpose(y_actual))
ptp_actual = tf.linalg.matmul(y_predicted,tf.transpose(y_predicted))
actual_energy = energy(mtm_actual)
predicted_energy = energy(ptp_actual)
return tf.math.abs(actual_energy - predicted_energy)
添加回答
舉報(bào)