1 回答
TA贡献1877条经验 获得超1个赞
张量的形状是 (运行 )。表示动态确定的任何大小(批大小)。是数据点的形状。例如,这是形状的张量:inputs = tf.keras.layers.Input(1)(None, 1)inputs.get_shape().as_list()None1(3, 1)
[[1], [2], [1]]
这是形状的张量(3,)
[1, 2, 1]
如果定义形状的张量,则必须提供相同形状的数据。(None, 1)
具有正确的形状,如果将其作为预期数据类型的 numpy 数组传递,则不会引发任何错误或警告:[[0]](1, 1)
import tensorflow as tf
import numpy as np
input_layer = tf.keras.layers.Input(1)
inner_layer = tf.keras.layers.Dense(4, activation='relu')(input_layer)
output_layer = tf.keras.layers.Dense(1, activation='linear')(inner_layer)
model = tf.keras.models.Model(input_layer, output_layer)
optimizer = tf.keras.optimizers.Adam(learning_rate=0.01)
model.compile(optimizer=optimizer, loss='mse')
print(model(np.array([[0.]], dtype=np.float32)).numpy()) # [[0.]]
print(model.predict(np.array([[0.], [1]], dtype=np.float32))) # [[0. ]
# [0.08964952]]
np.reshape()工作,因为它会自动将您的列表转换为numpy数组。有关详情,请参阅官方文档。np.reshape
还需要与 相同的形状,但可以执行自动整形(在左侧扩展尺寸,即 )。model.predict()model.__call__()[1] -- > [[1]]
添加回答
举报