tesorflow 入门

本文介绍了一个使用TensorFlow构建的神经网络模型,该模型用于识别MNIST数据集中的手写数字。通过两层隐藏层的多层感知器,实现了对手写数字的有效识别,展示了神经网络在模式识别任务中的应用。

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

神经网络模型,使用tesorflow,数据集是minist

import tensorflow as tf
import input_data

#读取数据
mnist= input_data.read_data_sets('data/',one_hot=True)
trainimg=mnist.train.images
trainimglabel=mnist.train.labels
testimg=mnist.test.images
testlabel=mnist.test.labels

print('MNIST loaded')

###### 以下是神经网络的结构

#网络层,
n_hidden_1=256#
n_hidden_2=128# 隐藏层神经元个数
n_input=784 #输入神经元个数,一共有784个
n_classes=10 #输出

#输入和输出
x=tf.placeholder('float',[None,n_input])
y=tf.placeholder('float',[None,n_classes])

#网络 参数

stddev=0.1
weights={
                                    #第一层 784*256
    'w1':tf.Variable(tf.random_normal([n_input,n_hidden_1],stddev=stddev)),
                                    #第二层 256*128
    'w2':tf.Variable(tf.random_normal([n_hidden_1,n_hidden_2],stddev=stddev)),
                                    #最后一层 128*10
    'out':tf.Variable(tf.random_normal([n_hidden_2,n_classes],stddev=stddev))
}
biases={
    'b1':tf.Variable(tf.random_normal([n_hidden_1])),
    'b2':tf.Variable(tf.random_normal([n_hidden_2])),
    'out':tf.Variable(tf.random_normal([n_classes]))
}
print('NetWork Ready')



#前向传播
#_X data
def multilayer_perceptron(_X,_weights,_biases):
    #_X  _weights['w1'] 相乘,最后加上b1
    layer_1=tf.nn.sigmoid(tf.add(tf.matmul(_X,_weights['w1']),_biases['b1']))
    layer_2=tf.nn.sigmoid(tf.add(tf.matmul(layer_1,_weights['w2']),_biases['b2']))
    #第三层,最后一层。最后没有sigmoid,只是输出。
    return (tf.matmul(layer_2,_weights['out'])+_biases['out'])

#反向传播
pred=multilayer_perceptron(x,weights,biases)

#损失函数
#交叉熵函数损失函数 pred网络预测值,前向传播之,y真实样本
cost=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred,y))
#梯度下降
optm=tf.train.GradientDescentOptimizer(learning_rate=0.001).minimize(cost)
corr=tf.equal(tf.argmax(pred,1),tf.argmax(y,1))
accr=tf.reduce_mean(tf.cast(corr,'float'))

init=tf.global_variables_initializer()
print('function ready')

###### 以上是神经网络的结构
#超参数定义
trainimg_epochs=20
batch_size=100
disply_step=4

#初始化全局变量
sess=tf.Session()
sess.run(init)
#进行迭代
for epoch in  range(trainimg_epochs):
    avg_cost=0
    total_batch=int(mnist.train.num_examples/batch_size)
    for i in range(total_batch):
        batch_xs,batch_ys=mnist.train.next_batch(batch_size)
        feeds={x:batch_xs,y:batch_ys}
        sess.run(optm,feed_dict=feeds)
        avg_cost+=sess.run(cost,feed_dict=feeds)
    avg_cost=avg_cost/total_batch
    #DISPLAY
    if(epoch+1)% disply_step == 0:
        print('EPOCH:%03d/%03d cost: %.9f' % (epoch,trainimg_epochs,avg_cost))
        feeds={x:batch_xs,y:batch_ys}
        train_acc=sess.run(accr,feed_dict=feeds)
        print('TRAIN ACCURACY:%.3f'%(train_acc))
        feeds={x:mnist.test.images,y:mnist.test.labels}
        test_acc=sess.run(accr,feed_dict=feeds)
        print('TEST ACCURACY:%0.3f'%(test_acc))

print('OPTIMIZ FINISHED')

 

<think>好的,我需要回答用户关于TensorFlow入门教程的问题。首先,用户引用了几个相关的资料,我需要结合这些引用内容来组织答案。根据系统级指令,要使用中文,并且结构清晰,分步骤解决问题。同时,需要生成相关问题,并在引用处添加标识。 首先,我应该从用户提供的引用中提取有用的信息。引用[1]提到TensorFlow的官方文档是重要资源,包括API参考、教程和指南,特别是模型园部分。引用[2]和[3]强调了TensorFlow作为开源框架在深度学习中的重要性,以及它能够构建和部署各种模型。引用[4]提到实战书籍,有代码实例和操作步骤,适合由浅入深学习。引用[5]介绍了Skip-gram模型,属于词向量训练,这可能属于自然语言处理的应用案例。 接下来,我需要整理TensorFlow的基础知识入门路径。用户想学习基础知识,可能需要了解安装、核心概念(如张量、计算图、会话)、基本模型构建步骤、常见应用案例,以及官方资源推荐。根据引用内容,可以分步骤讲解这些内容。 在回答中,需要确保所有数学表达式用$...$格式,独立公式用$$...$$。例如,提到线性回归模型时,损失函数可能需要用LaTeX表示。同时,要自然地插入引用标记,比如在提到官方文档时添加[^1],提到实战书籍时添加[^4],等等。 然后,生成相关问题。可能需要围绕用户可能感兴趣的下一步学习步骤提问,比如性能优化、模型部署、应用场景等,确保问题与主题相关,并基于引用内容。 最后,检查是否符合所有格式要求,避免使用Markdown,保持口语化,但结构清晰。确保每个引用只在段落末尾标注,并且正确对应引用的来源。</think>### TensorFlow 入门教程与机器学习框架基础 TensorFlow 是由 Google 开发的开源机器学习框架,广泛用于构建深度学习模型和其他机器学习任务。以下是逐步入门指南: --- #### **1. 安装与环境配置** - **安装方式**:通过 `pip` 安装 TensorFlow: ```bash pip install tensorflow ``` 若需 GPU 支持,则安装 `tensorflow-gpu`(需提前配置 CUDA 和 cuDNN)[^3]。 - **验证安装**: ```python import tensorflow as tf print(tf.__version__) # 输出版本号,如 2.10.0 ``` --- #### **2. 核心概念** - **张量(Tensor)**:TensorFlow 的基础数据结构,可理解为多维数组。例如: - 标量:`tf.constant(3)`,即 $3$。 - 向量:`tf.constant([1,2])`,即 $\begin{bmatrix}1 & 2\end{bmatrix}$。 - **计算图(Graph)**:定义模型的计算流程(TensorFlow 2.x 默认启用即时执行模式,无需手动建图)[^2]。 - **层(Layer)**:预定义的神经网络组件,如 `tf.keras.layers.Dense`。 --- #### **3. 构建第一个模型:线性回归** 以预测房价为例,模型表达式为 $y = wx + b$,通过最小化均方误差(MSE)训练参数: $$ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - (wx_i + b))^2 $$ **代码实现**: ```python import tensorflow as tf # 生成数据 X = tf.constant([1, 2, 3, 4], dtype=tf.float32) y = tf.constant([2, 4, 6, 8], dtype=tf.float32) # 定义模型 model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])]) # 编译模型(指定优化器和损失函数) model.compile(optimizer='sgd', loss='mean_squared_error') # 训练模型 model.fit(X, y, epochs=100) # 预测 print(model.predict([5])) # 输出接近 10 ``` 此案例展示了如何用 TensorFlow 实现简单的监督学习。 --- #### **4. 应用场景与扩展** - **图像分类**:使用预训练模型(如 ResNet)快速实现图像识别。 - **自然语言处理**:如引用[^5]提到的 Skip-gram 模型,用于生成词向量。 - **部署与优化**:通过 TensorFlow Lite 将模型部署到移动端,或使用 TensorFlow Serving 进行服务化。 --- #### **5. 学习资源推荐** - **官方文档**:TensorFlow 官网提供完整的教程和 API 文档,适合系统性学习[^1]。 - **实战书籍**:如引用提到的书籍,通过案例逐步掌握框架。 - **社区与课程**:Kaggle 竞赛和 Coursera 专项课程可提升实战能力。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气滴点C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值