gpt4 book ai didi

python - 使用占位符作为 tensorflow 中池化的形状

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:51 25 4
gpt4 key购买 nike

我正在 tensorflow 中研究神经网络,我有一个名为 CNN_model 的函数,它接受三个占位符作为输入:

X = tf.placeholder(tf.float32, [1, None, 13])
Y = tf.placeholder(tf.int32, [None])

pool_shape = tf.placeholder(tf.int32, [1])

我使用以下值运行 session :

feed_dict={X: x, Y: y, MFCCS: x.shape[0]}

在 session 中,我想创建一个最大池层,其形状由占位符定义,如下所示:

pool_window_size = [pool_shape, pool_shape]

pool = tf.layers.max_pooling2d(
inputs = conv,
pool_size = pool_window_size,
strides = pool_window_size,
name = "pool"
)

但我收到错误:

类型错误:int() 参数必须是字符串、类似字节的对象或数字,而不是“Tensor”

我假设是因为此时“pool_shape”是一个张量而不仅仅是一个整数,有没有办法获取此时张量中的值?

最佳答案

您可以尝试使用当前 session sess 以及 feed_dictpool_shape 所需的相关输入

dimension = pool_shape.eval(sess, feed_dict = {inputs})[0]
pool_window_size = [dimension , dimension]

希望这有帮助!

编辑我假设这当前是您的代码:

pool_shape = tf.placeholder(tf.int32, [1])
pool_window_size = [pool_shape, pool_shape]

#...

for i in range(iterations):
sess.run(Optimizer, feed_dict = {X:x, Y:y, pool_shape:value}
#value is the length/width you want to set for the pool_window_size

相反,我认为这可能有效。

pool_window_size = [pool_shape, pool_shape]

#...

for i in range(iterations):
pool_shape = value
sess.run(Optimizer, feed_dict = {X:x, Y:y}

我不太确定 maxpooling 层是否会更新 pool_size,你可以尝试告诉我。

关于python - 使用占位符作为 tensorflow 中池化的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44578770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com