TensorfFlow2【4】TensorFlow2入门案例

本文通过三个实例介绍如何使用TensorFlow实现线性和非线性回归、手写数字识别及鸢尾花分类任务。从数据准备到模型搭建、训练、预测及评估,详细展示了机器学习的工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.拟合线性函数

import numpy as np
import tensorflow as tf

# 1.创建数据集
x_data = np.random.rand(100)					# 生成数据.100个0-1的随机点
noise = np.random.normal(0,0.01,x_data.shape)	# 生成随机噪声
y_data = x_data*0.1 + 0.2 + noise				# 创建目标值
# 2.构建模型
model = tf.keras.Sequential()
model.add(Dense(units=1, input_dim=1))
model.compile(optimizer=SGD(0.03), loss='mse')
# 3.模型训练
for i in range(2002):							# 训练2002次 batch:批处理
	cost = model.train_on_batch(x_data,y_data)
	if i%500 == 0:
		print('cost--',cost)
# 4.模型预测
y_pred = model.predict(x_data)

二.拟合非线性函数

import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt

# 1.创建数据集
x_data = np.linspace(-0.5,0.5,200)[:,np.newaxis]
noise = np.random.normal(0,0.02,x_data.shape)
y_data = np.square(x_data) + noise
# 2.构建模型
model = tf.keras.Sequential()
# 非线性回归需要一个带有隐藏层的神经网络,并且需要非线性的激活函数
model.add(Dense(input_dim=1,activation='tanh',units=10))
model.add(Dense(activation='tanh',units=1))
model.compile(optimizer=SGD(0.3),loss='mse')
# 3.模型训练
for i in range(3001):
	cost = model.train_on_batch(x_data,y_data)
	if i%1000 == 0:
		print("cost--",cost)
        # 4.模型预测
		y_pred = model.predict(x_data)
		plt.subplot(2,2,i/1000 + 1)
		plt.scatter(x_data,y_data)
		plt.plot(x_data,y_pred,'r-')
		plt.title("picture:" + str(i/1000 + 1))
plt.show()

三.mnist分类

import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
'''
	数据载入的时候已经划分好了训练集和测试集
	x_train(60000,28,28)
	y_train(60000)
	x_test (10000,28,28)
	y_test (10000)
'''
# 1.获取数据
mnist = tf.keras.datasets.mnist
(x_train,y_train),(x_test,y_test) = mnist.load_data() # 必须以元组的形式接收
# 2.特征工程
x_test = x_test/255.0
x_train = x_train/255.0
y_train = tf.keras.utils.to_categorical(y_train,num_classes=10)	# 目标值准进行独热编码处理
y_test = tf.keras.utils.to_categorical(y_test,num_classes=10)
# 4.模型构建
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28,28)),
    tf.keras.layers.Dense(10,activation='softmax')
])
# 5.模型编译与训练
sgd = SGD(0.1)	# 优化器
model.compile(optimizer=sgd,loss='mse',metrics=['accuracy'])
model.fit(x_train,y_train,epochs=10,batch_size=32,validation_data=(x_test,y_test))

四.鸢尾花分类

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import tensorflow as tf

# 1.获取数据
iris = load_iris()
x = iris.data
y = iris.target
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3,random_state=0)
# 2.模型构建
model = tf.keras.models.Sequential([
    Dense(10,activation='relu',input_dim=(4)),
    Dense(10,activation='relu'),
    Dense(3,activation='softmax')
])
# 3.模型训练
model.compile(optimizer='adam',loss='mse',metrics=['accuracy'])
model.fit(x_train,y_train,epochs=10,batch_size=1,verbose=1)
# 4.模型预测
y_predict = model.predict(x_test)
# 5.模型评估
loss,accuarcy = model.evaluate(x_test,y_test,verbose=1)
print('loss---',loss)
print('accuarcy---',accuarcy)
当出现"could not find a version that satisfies the requirement"错误时,通常是由于以下几种原因导致的: 1. 版本不匹配:您可能尝试安装的tensorflow版本与您当前的Python版本不兼容。请确保您正在使用与tensorflow兼容的Python版本。您可以在tensorflow官方文档中找到与您的Python版本兼容的tensorflow版本。 2. 网络问题:有时候,由于网络问题,无法从PyPI(Python Package Index)下载所需的tensorflow版本。您可以尝试使用其他网络或者使用代理服务器来解决此问题。 3. 拼写错误:请确保您正确拼写了tensorflow的名称。如果您在拼写上有任何错误,将无法找到匹配的tensorflow版本。 以下是一些解决"could not find a version that satisfies the requirement tensorflow"错误的方法: 1. 确认Python版本:确保您正在使用与tensorflow兼容的Python版本。您可以在tensorflow官方文档中找到与您的Python版本兼容的tensorflow版本。 2. 检查网络连接:确保您的网络连接正常,并且可以访问PyPI。您可以尝试使用其他网络或者使用代理服务器来解决此问题。 3. 检查拼写错误:请确保您正确拼写了tensorflow的名称。如果您在拼写上有任何错误,将无法找到匹配的tensorflow版本。 4. 使用其他安装方式:如果以上方法都无法解决问题,您可以尝试使用其他安装方式,例如使用Anaconda或者使用源码进行安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值