如何在方法内调用输入并在 Tensorflow 中使用
Posted
技术标签:
【中文标题】如何在方法内调用输入并在 Tensorflow 中使用【英文标题】:How to call an input inside a method and use in Tensorflow 【发布时间】:2022-01-11 23:37:18 【问题描述】:我想调用一个方法,该方法在另一个方法中返回一组输入,并使用我的网络的当前权重进行预测。为简单起见,我现在尝试只打印输入。
import tensorflow as tf
import numpy as np
inputs = tf.keras.layers.Input( shape=(10,) )
x= tf.keras.layers.Flatten()(inputs)
x = tf.keras.layers.Dense(2)(inputs)
outputs = tf.keras.layers.Dense(1)(x)
model = tf.keras.Model(inputs, outputs)
model.compile(loss = "mse",
optimizer = tf.keras.optimizers.Adam(learning_rate=0.01) )
假设我有一个返回 numpy
数组的方法。
def firstMethod():
return np.array([[1.32040024, -1.11483181, 1.01526141, 1.36170304, -0.872175455, 1.23767245, 0.696531296, 1.74229145, -1.10529709, -3.96802974]])
现在,我定义了另一个方法,它将我的模型作为参数并打印数组。
def secondMethod(model):
tf.print(tf.convert_to_tensor(firstMethod, dtype = tf.float32))
secondMethod(model)
我收到一个错误,想知道如何解决这个问题。
ValueError: Attempt to convert a value (<function firstMethod at 0x0000019E0C44B4C0>) with an unsupported type (<class 'function'>) to a Tensor.
【问题讨论】:
【参考方案1】:您没有调用firstMethod()
,您将函数作为参数传入。添加括号以调用该函数,它应该可以工作。此外,secondMethod()
实际上并不使用model
。也许你打算做这样的事情?
def secondMethod(model):
tf.print(tf.convert_to_tensor(model(firstMethod()), dtype = tf.float32))
【讨论】:
是的,括号是缺失的部分。感谢您指出。我试图让问题像模型一样简单。这就是为什么我没有使用model
。以上是关于如何在方法内调用输入并在 Tensorflow 中使用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 TensorFlow 中对批次进行切片并在每个切片上应用操作
Parsley js:如何验证模态弹出窗口内的输入字段并在模态本身内显示错误消息