You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Keras读取TXT数据集,训练参数少于40的全连接神经网络(仅用前100行)

使用Keras读取TXT数据集(前100行)并构建轻量全连接分类器

步骤1:读取TXT数据集的前100行

以下提供两种适配不同数据格式的读取方式:

方式一:NumPy快速读取(适用于规整的数值型数据)

假设你的TXT数据为逗号分隔,最后一列为分类标签:

import numpy as np

# 仅读取前100行,自动完成数值转换
data = np.genfromtxt('your_dataset.txt', delimiter=',', max_rows=100)
X = data[:, :-1]  # 提取所有行的特征列(除最后一列)
y = data[:, -1]   # 提取所有行的标签列(最后一列)

方式二:纯Python逐行读取(适用于格式特殊的数据集)

如果数据格式不规整,可手动处理每行内容:

import numpy as np

X, y = [], []
with open('your_dataset.txt', 'r', encoding='utf-8') as f:
    for line_idx, line in enumerate(f):
        if line_idx >= 100:  # 终止读取,仅保留前100行
            break
        # 按实际分隔符拆分(这里用逗号,可按需修改)
        elements = line.strip().split(',')
        # 转换特征为浮点数、标签为整数(根据数据类型调整)
        X.append([float(elem) for elem in elements[:-1]])
        y.append(int(elements[-1]))
# 转换为Keras支持的NumPy数组格式
X = np.array(X)
y = np.array(y)

步骤2:构建参数少于40的全连接分类器

全连接层参数计算公式:(输入维度 × 神经元数) + 神经元数(包含偏置项)。需控制总参数在40以内:

假设输入特征维度为10、分类类别数为2,示例模型如下:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 搭建轻量全连接模型
model = Sequential([
    # 隐藏层:2个神经元,ReLU激活,输入维度匹配特征数
    Dense(2, activation='relu', input_shape=(10,)),
    # 输出层:对应分类类别数,softmax输出概率分布
    Dense(2, activation='softmax')
])

# 总参数计算:(10×2+2) + (2×2+2) = 22 + 6 = 28(远小于40)
model.summary()

# 编译模型
model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',  # 标签为整数时使用
    # 若标签是one-hot编码,改用loss='categorical_crossentropy'
    metrics=['accuracy']
)

# 启动训练
model.fit(X, y, epochs=10, batch_size=8)

关键注意事项

  • 若输入特征维度或分类类别数不同,需调整神经元数量,确保总参数不超过40
  • 确保TXT数据无缺失值、格式统一,否则需在读取环节添加异常处理逻辑
  • 标签类型需与损失函数匹配:整数标签用sparse_categorical_crossentropy,one-hot标签用categorical_crossentropy

内容的提问来源于stack exchange,提问作者Maria Ferreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:30:50