ευρετηρίαση σε tf.scan

ψήφοι
0

Θα πρέπει να λειτουργούν σε ένα πολύ μεγάλο τανυστής δίνονται παρακάτω ως np_data. Κάθε στοιχείο αυτής της tensor αλλάζει ανάλογα με στατική NumPy np_functions συστοιχία. Χρειάζομαι έναν τρόπο να np_functions δείκτη ανάλογα με το δείκτη του τανυστή run_fn είναι.

import tensorflow as tf
import numpy as np

np_data = np.array([[1,0], 
                    [1,0],
                    [0,1]])

np_functions = np.array([[1,0,1],
                         [2,1,0],
                         [3,0,1]])

def run_fn(_a, _, _data_in):
    INDEX = run_fn_current_index_in_tensor_data_in?!?!?!?
    if np_functions[INDEX][0] == 1:
        return _data_in[0] + _data_in[1]
    if np_functions[INDEX][0] == 2:
        return _data_in[0] - _data_in[1]
    if np_functions[INDEX][0] == 3:
        return _data_in[0] / _data_in[2]


_data_in = tf.placeholder(tf.int32, shape=(3, 2), name='data_in')
data = tf.scan(lambda _a, _: run_fn(_a, _, _data_in), _data_in)
sess = tf.Session()
model =  tf.global_variables_initializer()
sess.run(model)
np_data = sess.run(data, feed_dict={_data_in: np_data})

Κάνοντας ένα ευρετήριο σε np_data ή σίτιση np_functions σε tf.scan δεν είναι καλή λύση, διότι τότε np_function becames μια δυναμική tensor και θα αξιολογούνται κάθε επανάληψη. np_functions είναι στατική και σε κάθε run_fn κύτταρο θα λάβει την ίδια απόφαση σε όλες τις επαναλήψεις. np_data αλλάζει κάθε επανάληψη.

Δημοσιεύθηκε 20/10/2018 στις 12:38
πηγή χρήστη
Σε άλλες γλώσσες...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more