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

问题描述:

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

实现代码:

生成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个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值