1. 程式人生 > >TypeError: Input 'y' of 'Add' Op has type float32 that does not match type int32 of argument 'x'.

TypeError: Input 'y' of 'Add' Op has type float32 that does not match type int32 of argument 'x'.

學習Python,碰到資料型別不一致進行運算出現的問題,問題現象、原因、解決辦法如下。

1、問題程式碼

# 引入 tensorflow 模組
import tensorflow as tf

# 建立兩個常量節點
node1 = tf.constant([2,5], dtype=tf.int32)
node2 = tf.constant([1,2], dtype=tf.float32)

#建立add節點,實現上面2個節點的加操作
adder = node1 + node2

#列印3個節點
print(node1)
print(node2)
print(adder)

# 列印 adder 執行後的結果
sess = tf.Session()
print(sess.run(adder))

問題現象:

2、問題原因

node1資料型別是int,但node2資料型別是float

3、解決辦法

# 引入 tensorflow 模組
import tensorflow as tf

# 建立兩個常量節點
node1 = tf.constant([2,5], dtype=tf.float32)
node2 = tf.constant([1,2], dtype=tf.float32)

#建立add節點,實現上面2個節點的加操作
adder = node1 + node2

#列印3個節點
print(node1)
print(node2)
print(adder)

# 列印 adder 執行後的結果
sess = tf.Session()
print(sess.run(adder))

正確執行結果: