我还不熟悉numpy,希望有人可以帮助我。
代码是:
x = tf.placeholder(tf.float32 , [1 , 36])
# L is a list from a list of lists.
sess.run(rnn_model , {x : L})
错误是:
ValueError: Cannot feed value of shape (36,) for Tensor 'Placeholder:0', which has shape '(1, 36)'
我认为这是因为L是2D列表中的列表,python认为L必须是列列表。
如何解决该错误?
答案 0 :(得分:0)
您可以使用numpy
重塑list L
的形状,然后使用tf.convert_to_tensor()
。
import numpy as np
import tensorflow as tf
print(tf.__version__)
print(np.__version__)
L = [i for i in range(36)]
La = np.array(L).reshape((1,len(L))).astype(np.float32)
Lt = tf.convert_to_tensor(La)
print(y)
输出:
1.15.0
1.17.3
Tensor("Const_7:0", shape=(1, 36), dtype=float32)
答案 1 :(得分:0)
您可以使用np.expand_dims()将列表转换为列向量,如下所示:
sess.run(rnn_model , {x : np.expand_dims(L, axis=0)})
答案 2 :(得分:0)
您可以通过在所需位置使用“无”来使用花式索引来添加尺寸为1的额外尺寸。
FROM ubuntu:18.04
# Upgrade installed packages
RUN apt-get update && apt-get upgrade -y && apt-get clean
# (...)
# Python package management and basic dependencies
RUN apt-get install -y curl python3.7 python3.7-dev python3.7-distutils
# Register the version in alternatives
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
# Set python 3 as the default python
RUN update-alternatives --set python /usr/bin/python3.7
# Upgrade pip to latest version
RUN curl -s https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python get-pip.py --force-reinstall && \
rm get-pip.py
# (...)
或
L[None, :]
如果L不是ndarray。