ไม่คุณไม่สามารถดูเนื้อหาของเมตริกซ์ได้โดยไม่ต้องเรียกใช้กราฟ (ทำsession.run()
) สิ่งเดียวที่คุณเห็นคือ:
- มิติของเมตริกซ์ (แต่ฉันคิดว่ามันไม่ยากที่จะคำนวณสำหรับรายการการดำเนินการที่ TF มี)
- ประเภทของการดำเนินการที่จะใช้ในการสร้างเมตริกซ์ (
transpose_1:0
, random_uniform:0
)
- ประเภทขององค์ประกอบในเมตริกซ์ (
float32
)
ฉันไม่พบสิ่งนี้ในเอกสาร แต่ฉันเชื่อว่าค่าของตัวแปร (และค่าคงที่บางค่าไม่ถูกคำนวณ ณ เวลาที่มอบหมาย)
ดูตัวอย่างนี้:
import tensorflow as tf
from datetime import datetime
dim = 7000
ตัวอย่างแรกที่ฉันเพิ่งเริ่ม Tensor คงที่ของตัวเลขสุ่มวิ่งประมาณเวลาเดียวกันโดยไม่คำนึงถึงสลัว ( 0:00:00.003261
)
startTime = datetime.now()
m1 = tf.truncated_normal([dim, dim], mean=0.0, stddev=0.02, dtype=tf.float32, seed=1)
print datetime.now() - startTime
ในกรณีที่สองที่ค่าคงที่ได้รับการประเมินจริงและกำหนดค่าเวลาขึ้นอยู่กับสลัว ( 0:00:01.244642
) อย่างชัดเจน
startTime = datetime.now()
m1 = tf.truncated_normal([dim, dim], mean=0.0, stddev=0.02, dtype=tf.float32, seed=1)
sess = tf.Session()
sess.run(m1)
print datetime.now() - startTime
และคุณสามารถทำให้ชัดเจนยิ่งขึ้นโดยการคำนวณบางสิ่ง ( d = tf.matrix_determinant(m1)
จำไว้ว่าเวลาจะมาO(dim^2.8)
)
PS ฉันพบว่ามันถูกอธิบายไว้ในเอกสาร :
วัตถุ Tensor เป็นจุดจับสัญลักษณ์ที่เป็นผลลัพธ์ของการดำเนินการ แต่จริง ๆ แล้วไม่ได้เก็บค่าของเอาต์พุตของการดำเนินการ