如何将tensorflow占位符变量转换为numpy数组?

时间:2019-04-26 08:24:54

标签: python numpy tensorflow

我想在tensorflow代码中使用scipy插值函数。

以下是与我的情况类似的示例代码段。

import tensorflow as tf
from scipy import interpolate

def interpolate1D(Xval,Fval,inp): 
    Xval = np.array(Xval)
    Fval = np.array(Fval)
    f = interpolate.interp1d(Xval, Fval, fill_value="extrapolate")
    z = f(inp)
    return z

properties = {
    'xval': [200,400,600,800,1100],
    'fval': [100.0,121.6,136.2,155.3,171.0]
}

tensor = tf.placeholder("float")

interpolate = interpolate1D(properties['xval'],properties['fval'], tensor)


一旦我得到interpolate,我将使用tf.convert_to_tensor(interpolate)将其转换为张量

这里interpolate.interp1d仅是一个示例。我将使用其他插值方法,这些方法的输出将输入到另一个神经元中。

我知道placeholder是空变量,因此从技术上讲不可能转换为numpy数组。另外,我无法在张量流图之外使用此插值函数,因为在某些情况下,我需要使用神经网络的输出作为插值函数的输入。

总体而言,我想在张量图中使用scipy插值函数。

2 个答案:

答案 0 :(得分:2)

您可以使用tf.py_func在图形中使用SciPy函数,但是更好的选择是在TensorFlow中实现插值。库中没有开箱即用的功能,但是实现它并不难。

RefCell

答案 1 :(得分:0)

此问题的预期答案是使用from random import randint import time from googletrans import Translator def get_script_eng(): should_restart = True spanish_subs = get_subs(page) counter_num = 1 translator = Translator() start_block = 0 end_block = 50 while end_block < len(get_subs(page)): print('start_block ' + str(start_block)) print('end_block ' + str(end_block)) if should_restart == True: translations = translator.translate(spanish_subs[start_block:end_block], src='es') for translation in translations: english_subs.append(translation.text) time.sleep(random()) print('translation ' + str(counter_num + 1 )) else: should_restart = False with open('spanish.txt', 'w') as f: for item in english_subs: f.write("%s\n" % item) print('Finished') start_block = start_block + 50 end_block = end_block + 50 print(english_subs) return english_subs ,并感谢@jdehesa提到了这一点。

对于希望在此问题解决的用户,下面会提到

def random():
  random_number = randint(0, 10)
  return random_number