为什么模型参数为空?

问题描述 投票:0回答:1
import numpy as np
import tensorflow as tp

# Importing imdb dataset
from tensorflow.keras.datasets import imdb
from tensorflow.keras.preprocessing import sequence
# The sequence module in tensorflow.keras.preprocessing provides utilities for preprocessing sequence data, such as text or time-series data.

from tensorflow.keras.models import Sequential
# The sequence module in tensorflow.keras.preprocessing provides utilities for preprocessing sequence data, such as text or time-series data.

from tensorflow.keras.layers import Embedding, SimpleRNN, Dense

# Define the model
model = Sequential()

# Add the Embedding layer
model.add(Embedding(1000, 128))  # Adjust the vocabulary size (1000) as needed

# Print the summary of the model to check the parameters
model.summary()

# Add the SimpleRNN layer
model.add(SimpleRNN(128, activation='relu'))

# Add the Dense output layer
model.add(Dense(1, activation='sigmoid'))

# Print the model layers
print(model.layers)

# Print the summary to check the parameters
model.summary()

我对张量流非常陌生。我正在尝试使用 simpleRNN 创建一个模型。这里有什么问题。我得到的可训练参数为 0

总参数:0 (0.00 B) 可训练参数:0 (0.00 B) 不可训练参数:0 (0.00 B)

python tensorflow deep-learning
1个回答
0
投票

您面临的可训练参数为 0 的问题可能是由于嵌入层缺少输入形状规范造成的。嵌入层需要定义输入形状,以便它知道如何处理序列输入。

嵌入层的输入形状: 嵌入层应具有与形状匹配的输入形状 您的输入数据。通常,对于文本分类问题,这 将是单词数(词汇量)和长度 输入序列(例如,每个评论的字数)。

修复模型:

在Embedding层添加input_length参数来指定 输入序列的长度。例如,如果每个评论有 500 换句话说,你可以设置 input_length=500

import numpy as np
import tensorflow as tf

# Importing imdb dataset
from tensorflow.keras.datasets import imdb
from tensorflow.keras.preprocessing import sequence

# The sequence module in tensorflow.keras.preprocessing provides utilities for preprocessing sequence data, such as text or time-series data.
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, SimpleRNN, Dense

# Define the model
model = Sequential()

# Add the Embedding layer with input length
model.add(Embedding(1000, 128, input_length=500))  # Adjust the input length (500) based on your input data

# Add the SimpleRNN layer
model.add(SimpleRNN(128, activation='relu'))

# Add the Dense output layer
model.add(Dense(1, activation='sigmoid'))

# Print the model summary to check the parameters
model.summary()

嵌入层现在的 input_length 为 500,这指定每个输入序列(例如评论)有 500 个单词。 该模型现在将具有可训练的参数,因为嵌入层需要学习权重矩阵以将词汇索引映射到指定大小 (128) 的向量。 这应该可以解决可训练参数为 0 的问题。

© www.soinside.com 2019 - 2024. All rights reserved.