Saya memerlukan cara untuk mendapatkan bentuk tensor keluaran untuk semua jenis lapisan (yaitu Dense, Conv2D, dll) di TensorFlow. Menurut dokumentasi, ada properti output_shape
yang menyelesaikan masalah. Namun setiap kali saya mengaksesnya saya mendapatkan AttributedError
.
Berikut adalah contoh kode yang menunjukkan masalahnya:
import numpy as np
import tensorflow as tf
x = np.arange(0, 8, dtype=np.float32).reshape((1, 8))
x = tf.constant(value=x, dtype=tf.float32, verify_shape=True)
dense = tf.layers.Dense(units=2)
out = dense(x)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
res = sess.run(fetches=out)
print(res)
print(dense.output_shape)
Pernyataan print(dense.output_shape)
akan menghasilkan pesan kesalahan:
AttributeError: The layer has never been called and thus has no defined output shape.
atau print(dense.output)
akan menghasilkan:
AttributeError('Layer ' + self.name + ' has no inbound nodes.')
AttributeError: Layer dense_1 has no inbound nodes.
Apakah ada cara untuk memperbaiki kesalahan tersebut?
NB: Saya tahu bahwa pada contoh di atas saya bisa mendapatkan bentuk tensor keluaran melalui out.get_shape()
. Namun saya ingin tahu mengapa properti output_shape
tidak berfungsi dan bagaimana cara memperbaikinya?