我是深度學習的新手,我對術語完全困惑。
在 TensorFlow 檔案中,
對于 [RNN 層] https://www.tensorflow.org/api_docs/python/tf/keras/layers/RNN#input_shape
N-D tensor with shape [batch_size, timesteps, ...]
對于 [LSTM 層] https://www.tensorflow.org/api_docs/python/tf/keras/layers/LSTM
inputs: A 3D tensor with shape [batch, timesteps, feature].
我了解 input_shape,我們不必指定批次/批次大小。但我仍然想知道批量和批量大小之間的區別。
什么是時間步長與特征?
第一維度總是批次嗎?第 2 維 = 時間步長,第 3 維 = 特征?
示例 1
data = array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
data = data.reshape((1, 5, 2))
print(data.shape) --> (1, 5, 2)
print(data)
[[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]]]
model = Sequential()
model.add(LSTM(32, input_shape=(5, 2)))
示例 2
data1 = array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11])
n_features = 1
data1 = data1.reshape((len(data1), n_features))
print(data1)
# define generator
n_input = 2
generator = TimeseriesGenerator(data1, data1, length=n_input, stride=2, batch_size=10)
# number of batch
print('Batches: %d' % len(generator))
# OUT --> Batches: 1
# print each batch
for i in range(len(generator)):
x, y = generator[i]
print('%s => %s' % (x, y))
x, y = generator[0]
print(x.shape)
[[[ 1]
[ 2]]
[[ 3]
[ 4]]
[[ 5]
[ 6]]
[[ 7]
[ 8]]
[[ 9]
[10]]] => [[ 3]
[ 5]
[ 7]
[ 9]
[11]]
(5, 2, 1)
# define model
model = Sequential()
model.add(LSTM(100, activation='relu', input_shape=(n_input, n_features)))
uj5u.com熱心網友回復:
batch_sizev之間的區別。batch
在您參考的檔案中,batch表示batch_size.
timesteps和的含義feature
瀏覽一下https://www.tensorflow.org/tutorials/structured_data/time_series(帶有真實世界資料的天氣預報示例!)將幫助您更多地了解時間序列資料。
feature是您希望模型從中進行預測的物件;在上面的預測示例中,它是壓力、溫度等的向量(陣列)......
RNN/LSTM 旨在處理時間序列。這就是為什么您需要將timesteps與一起饋送feature到您的模型。timesteps表示記錄資料的時間;同樣,在上面的示例中,資料每小時采樣一次,timesteps == 0第一個小時、timesteps == 1第二個小時、...的資料也是如此。
輸入/輸出資料的維度順序
在 TensorFlow 中,資料的第一維通常代表一個批次。
批處理軸之后的內容取決于問題欄位。一般來說,全域特征(如批量大小)優先于特定元素的特征(如影像大小)。
例子:
- 時間序列資料是有
(batch_size, timesteps, feature)格式的。 - 影像資料通常以 NHWC 格式表示:
(batch_size, image_height, image_width, channels).
來自https://www.tensorflow.org/guide/tensor#about_shapes:
雖然軸通常由它們的索引參考,但您應該始終跟蹤每個軸的含義。通常軸從全域到區域排序:首先是批處理軸,然后是空間維度,最后是每個位置的特征。這種方式特征向量是記憶體的連續區域。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406125.html
標籤:
上一篇:如何在Codeigniter中更新共享相同外鍵的多行
下一篇:如何正確使用Keras嵌入層?
