gpt4 book ai didi

python - 基本 tensorflow 问题(输入和输出数组)

转载 作者:行者123 更新时间:2023-11-30 08:48:24 26 4
gpt4 key购买 nike

我目前正在尝试 Tensorflow。这里我有一个近似根函数的例子。这仍然相对简单,因为输入和输出是“浮点”值。

from tensorflow import keras
import numpy as np

model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.add(keras.layers.Dense(100))
model.add(keras.layers.Dense(100))
model.add(keras.layers.Dense(1))
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([2.0, 5.0, 7.0, 9.0, 6.0, 4.0], dtype=float)
ys = np.array([1.41, 2.23, 2.64, 3.0, 2.44, 2.0], dtype=float)

model.fit(xs, ys, epochs=200)

print(model.predict([8.0]))

但是如何创建一个以数组作为输入和输出的简单网络呢?例如:

xs = [[1,3,4,5] , [9,2,3,4]]
ys = [[22,13,9,20] , [38,36,31,22]]

最佳答案

如果您想提供多维数组,您需要进行一些调整。例如:您的 xs = [[1,3,4,5], [9,2,3,4]] 的形状为 [2,4]。更准确地说,如果将其转换为 numpy 数组,它将具有该形状,如下所示:

np.array([np.array(x) for x in xs])

因此,要在形状 [2,4] 的数据上训练模型,首先需要设置输入形状

model = tf.keras.Sequential([layers.Dense(units=1, input_shape=[2,4])])
model.add(layers.Dense(100))
model.add(layers.Dense(4))
model.compile(optimizer='sgd', loss='mean_squared_error')

输出层有4个单元,与最后一个维度相同。然后创建一些随机数据

xs = np.array([np.random.rand(2,4) for i in range(100)])
ys = np.array([xs[i]**2 for i in range(100)])

这里我们创建了一个数组的数组,每个数组的形状都是[2,4]以及相同形状的标签数组,它们只是作为例子。

model.fit(xs, ys, epochs=10, batch_size=1)

然后将此数据传递到模型中,将批量大小设置为 1,这意味着一次将处理形状为 [2,4] 的单个数组。

最后尝试使用另一个随机数组来预测值。注意,这里我们需要添加另一个维度,即批量大小。它不需要是 1,相反,您可以进行任意数量的预测,考虑到另一个维度是 [2,4]

p = np.random.rand(1,2,4)
print(model.predict(p))

关于python - 基本 tensorflow 问题(输入和输出数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522371/

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