第一次实验报告(1)

一.实验目的

 复习巩固VC编程环境的使用,以及C++模板设计。

1.回顾并掌握VC单文件结构程序设计过程。

2.回顾并掌握VC多文件工程设计过程

3.掌握VC程序调试过程。

4.回顾C++模板和模板的程序设计。

二.实验内容

1. 设计一个单文件结构程序完成从键盘输入两个数,输出二者的的结果。要求如下:

1)设计函数来计算,在主函数中调用,并能考虑重载函数,使整数和小数均能计算。

2)分别使用单步调试和断点调试来调试程序。并多次运行力求熟练调试方法。

2.使用函数的模板来实现上述功能。

3.使用一个类来实现上述功能。要求:

  1)使用类模板

  2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。

 

1.

#include<iostream>

using namespace std;

double plus(double a,double b)

{

return a+b;

}

double  multiply(double a,double b)

{

return a*b;

}

void main()

{

double a,b;

cout<<"请输入两个数"<<endl;

cin>>a>>b;

    double c,d;

c=plus(a,b);

d=multiply(a,b);

cout<<"这两个数的和"<<endl;

cout<<a<<"+"<<b<<"="<<c<<endl;

cout<<"这两个数的积"<<endl;

cout<<a<<"*"<<b<<"="<<d<<endl;

}

运行结果如图



2.

#include<iostream>

using namespace std;

template<typename T>

T plus(T a,T b)

{

return a+b;

};

template<typename T>

T  multiply(T a,T b)

{

return a*b;

}

void main()

{

double a,b;

cout<<"请输入两个数"<<endl;

cin>>a>>b;

    double c,d;

c=plus(a,b);

d=multiply(a,b);

cout<<"这两个数的和"<<endl;

cout<<a<<"+"<<b<<"="<<c<<endl;

cout<<"这两个数的积"<<endl;

cout<<a<<"*"<<b<<"="<<d<<endl;

}

运行结果如图




由于电脑有点问题,调试步骤未能完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本次手写数字识别实验使用了深度学习框架TensorFlow,实现了对手写数字图片的识别。以下是实验报告。 ## 实验目的 通过训练神经网络模型,实现对手写数字图片的自动识别,提高人工智能的应用水平。 ## 实验过程 ### 数据集准备 使用MNIST数据集,该数据集包含60000张训练图像和10000张测试图像,每张图片大小为28*28像素,共10个类别(数字0~9)。首先需要将数据集下载到本地,并进行预处理。 ```python import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 导入数据集 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # 分别获取训练集、验证集和测试集 train_data = mnist.train.images train_label = mnist.train.labels valid_data = mnist.validation.images valid_label = mnist.validation.labels test_data = mnist.test.images test_label = mnist.test.labels ``` ### 模型构建 使用TensorFlow搭建卷积神经网络模型,包括两个卷积层、两个池化层和一个全连接层。 ```python # 创建输入占位符 x = tf.placeholder(tf.float32, [None, 784]) y_true = tf.placeholder(tf.float32, [None, 10]) # 将输入数据转换为图像格式 x_image = tf.reshape(x, [-1, 28, 28, 1]) # 第一层卷积层 conv1 = tf.layers.conv2d(inputs=x_image, filters=32, kernel_size=[5, 5], padding="same", activation=tf.nn.relu) # 第一层池化层 pool1 = tf.layers.max_pooling2d(inputs=conv1, pool_size=[2, 2], strides=2) # 第二层卷积层 conv2 = tf.layers.conv2d(inputs=pool1, filters=64, kernel_size=[5, 5], padding="same", activation=tf.nn.relu) # 第二层池化层 pool2 = tf.layers.max_pooling2d(inputs=conv2, pool_size=[2, 2], strides=2) # 将卷积层输出展开为一维向量 flatten = tf.reshape(pool2, [-1, 7*7*64]) # 全连接层 fc = tf.layers.dense(inputs=flatten, units=1024, activation=tf.nn.relu) # 输出层 y_pred = tf.layers.dense(inputs=fc, units=10) ``` ### 模型训练 使用交叉熵作为损失函数,Adam优化器进行模型训练。 ```python # 定义损失函数和优化器 cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y_pred, labels=y_true)) train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) # 计算准确率 correct_prediction = tf.equal(tf.argmax(y_pred, 1), tf.argmax(y_true, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) # 创建Session并运行模型 sess = tf.Session() sess.run(tf.global_variables_initializer()) for i in range(10000): batch_data, batch_label = mnist.train.next_batch(50) sess.run(train_step, feed_dict={x: batch_data, y_true: batch_label}) if i % 100 == 0: train_accuracy = sess.run(accuracy, feed_dict={x: train_data, y_true: train_label}) print("step %d, training accuracy %g" % (i, train_accuracy)) ``` ### 模型评估 使用测试集对模型进行评估,计算准确率。 ```python test_accuracy = sess.run(accuracy, feed_dict={x: test_data, y_true: test_label}) print("test accuracy %g" % test_accuracy) ``` ## 实验结果 经过10000次迭代的训练,最终模型在测试集上的准确率为98.3%。 ## 实验结论 本次实验使用TensorFlow搭建了卷积神经网络模型,实现了对手写数字图片的识别。通过实验结果可以看出,该模型在MNIST数据集上表现较好,可以应用于实际场景中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值