Saya perlu membuat vektor acak sebagai berikut:

Y = (np.random.randn(tf.size(signal)) + 1j * np.random.randn(tf.size(signal)))

Di mana variabel signal adalah vektor yang mewakili output dari jaringan saraf, tetapi saya mendapatkan kesalahan seperti di bawah ini:

  File "mtrand.pyx", line 1422, in mtrand.RandomState.randn
  File "mtrand.pyx", line 1552, in mtrand.RandomState.standard_normal
  File "mtrand.pyx", line 167, in mtrand.cont0_array
TypeError: 'Tensor' object cannot be interpreted as an integer

Saya juga telah mencoba signal.shape , tetapi juga muncul kesalahan yang sama.

0
Gze 11 Mei 2021, 11:43

1 menjawab

Jawaban Terbaik

TF1.x dan TF2.x: Melakukan operasi di TensorFlow

Saat bekerja dengan tensor tensorflow, Anda harus menggunakan API tf terutama. Dalam kasus Anda, Anda cukup menggunakan:

Y = tf.complex(tf.random.normal((tf.size(signal),)), tf.random.normal((tf.size(signal),)))

Ini akan mengembalikan tensor complex64 acak dengan bagian real dan imajiner mengikuti distribusi normal.

TF2.x: Eksekusi yang bersemangat

Jika Anda perlu bekerja secara langsung dengan numpy, Anda dapat menggunakan metode numpy untuk mengevaluasi tensor Anda dalam eksekusi yang bersemangat:

Y = (np.random.randn(tf.size(signal).numpy()) + 1j * np.random.randn(tf.size(signal).numpy()))

TF1.x: mengevaluasi Tensor Anda dengan tf.Session

Anda sebenarnya perlu mengevaluasi tensor Anda di dalam tf.Session untuk mendapatkan output sebagai array numpy, dengan melakukan panggilan ke tf.Session.run:

get_size_op = tf.size(signal)

with tf.Session() as sess:
    # you might need to provide a dictionary containing 
    # the values for your placeholders (feed_dict keyword argument)
    size_signal = sess.run(get_size_op)

# size_signal is an integer you can use in the numpy function
Y = (np.random.randn(size_signal) + 1j * np.random.randn(size_signal))

Catatan: Mungkin lebih baik untuk mengevaluasi signal dalam sesi dan melanjutkan sisa perhitungan Anda dengan numpy (menggunakan signal.size daripada tf.size(signal))


Catatan: setara dengan tensor.shape adalah tf.shape. Saya menggunakan tf.size karena itulah yang Anda gunakan dalam pertanyaan Anda.

1
Lescurel 12 Mei 2021, 13:18