【学习记录】tensorflow搭建神经网络,并完成两数相加功能

本文探讨了如何使用TensorFlow构建一个神经网络加法器,面对仅有100个样本的小数据挑战。通过增加epoch和样本量,作者分享了应对策略,以及对模型预测3和5相加结果的实战演示。
部署运行你感兴趣的模型镜像

问题描述:

随机生成数据集,进行加法运算。构建神经网络来实现加法器功能

实现代码:

生成100个随机数据

import numpy as np 
from tensorflow import keras
import tensorflow as tf

a=np.random.randint(1,100,100)
b=np.random.randint(1,100,100)

将数据转化为100个样本,每个样本1个元素

x1=a.reshape(100,1)
x2=b.reshape(100,1)

合并为100个样本,每个样本2个元素

x_train=np.hstack((x1,x2))
x_train

生成结果标签

c=a+b
y_train=c.reshape(100,1)
y_train

设置输入大小

inputs = keras.Input(shape=x_train.ndim,)

添加全连接层

x = keras.layers.Dense(30, activation=tf.nn.relu)(inputs)

设置输出大小

outputs = keras.layers.Dense(activation=tf.nn.relu,units=1)(x)
model = keras.Model(inputs=inputs, outputs=outputs)

设置合适的损失函数

model.compile(optimizer='Adam',
              loss='mse',
              metrics=['mean_absolute_error'])
model.summary()

开始训练

model.fit(x=x_train, y=y_train,epochs=20, batch_size=20)

对模型进行预测,输入为3和5

arr1 = np.array([[3]])
arr2 = np.array([[5]])
x_arr = np.hstack((arr1,arr2))

y_pred = model.predict(x = x_arr )
y_pred

实现截图:

总结:

因为输入数据是随机而且总样本只有100个。所以每次迭代的损失和验证不同相同。

解决方法有:

1.增加epoch的迭代次数

2.增加总样本量到1000个

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值