我想在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插值函数。
答案 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