C++实现求多整数及双精度数最大值算法

版权申诉
0 下载量 98 浏览量 更新于2024-11-03 收藏 13KB ZIP 举报
资源摘要信息:"在给定的文件信息中,我们可以了解到涉及的主要知识点是关于编程中求取整数和双精度数最大值的算法实现。文件标题“three_max.zip_双精度”暗示了文件内容可能是一个压缩包,文件扩展名为.zip,表示它可能包含了多个文件。标题中的“双精度”标签表明文件中的算法或程序可能会涉及到双精度浮点数的处理。此外,描述中提到的“求取两个整数、三个整数,两个双精度数、三个双精度数的最大值”进一步明确了程序的功能需求,即编写程序以找出不同数量的整数和双精度数中的最大值。文件名称列表中包含了“three_max.cpp”和“three_max.jpg”,前者是一个源代码文件,而后者可能是一张图片文件,但通常与程序逻辑无关。 具体来说,知识点可以细分为以下几点: 1. 压缩包文件格式:.zip文件是一种常见的压缩文件格式,它可以将多个文件或文件夹压缩成一个文件,便于存储和传输。在本例中,它被用来包含与最大值求取算法相关的所有文件。 2. 编程源代码文件:three_max.cpp是一个C++源代码文件。在编程实践中,C++是处理数值计算的常用语言,特别适用于算法开发。文件内容可能包含了函数或程序,用以计算给定数量的整数或双精度浮点数中的最大值。 3. 编程算法逻辑:描述中提到的“求取两个整数、三个整数,两个双精度数、三个双精度数的最大值”指出了需要实现的算法逻辑。这意味着程序设计者需要编写能够处理不同数量参数的函数,并且能正确比较整数和双精度数,返回其中的最大值。 4. 双精度浮点数概念:在计算机中,双精度浮点数(double precision floating-point number)是一种数据类型,用于存储大范围的浮点数,精确度高。与之对应的还有单精度浮点数(float)。在进行科学计算、工程计算、财务计算等精确度要求较高的场合,双精度浮点数是常用的数值类型。 5. 图片文件:three_max.jpg可能是一个文档中提到的算法流程图、示例输出、或者是程序界面截图。在编程项目中,图片文件通常用于辅助说明程序功能或结果展示,但不会直接参与数值计算。 由于文件中提到了双精度,我们可以进一步讨论双精度浮点数在计算机中的表示和精度问题。双精度浮点数占用8字节(64位)的存储空间,其中1位为符号位,11位为指数位,剩余52位为尾数位。这种结构使得双精度浮点数可以表示非常大或非常小的数值,且精度可以达到小数点后约15到17位。在实际编程时,正确地处理双精度数的运算,避免精度损失和溢出等问题,是程序员需要关注的细节之一。 此外,实现算法时可能会考虑使用诸如if-else语句、循环语句、标准库函数(如std::max)或者自定义比较函数等不同的编程结构和方法。这些都是编程中用于求取最大值的基本逻辑和技术手段。 总之,给定文件信息反映了在编程领域中一个具体的问题和解决方案,涉及到了数据类型的处理、算法逻辑的实现以及文件管理等方面的知识。通过对这些知识点的掌握和应用,开发者可以编写出能够正确求取最大值的程序,并能够有效地管理和组织相关代码和资源文件。"

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt ## Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuarcy')# ax.set_ylabel('Categorical Crossentropy Loss') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) ## We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() ## We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]*train_data.shape[2]) # 60000*784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]*test_data.shape[2]) # 10000*784 ## We next change label number to a 10 dimensional vector, e.g., 1->[0,1,0,0,0,0,0,0,0,0] train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) ## start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 # ## we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(64, input_shape=(784,),activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history['val_accuracy']模仿此段代码,写一个双隐层感知器(输入层784,第一隐层128,第二隐层64,输出层10)

2023-06-01 上传

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuracy') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]train_data.shape[2]) # 60000784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]test_data.shape[2]) # 10000784 We next change label number to a 10 dimensional vector, e.g., 1-> train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(128, input_shape=(784,),activation='relu'), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history对于该模型,使用不同数量的训练数据(5000,10000,15000,…,60000,公差=5000的等差数列),绘制训练集和测试集准确率(纵轴)关于训练数据大小(横轴)的曲线

2023-06-01 上传

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt ## Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuarcy')# ax.set_ylabel('Categorical Crossentropy Loss') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) ## We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() ## We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]train_data.shape[2]) # 60000784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]test_data.shape[2]) # 10000784 ## We next change label number to a 10 dimensional vector, e.g., 1->[0,1,0,0,0,0,0,0,0,0] train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) ## start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 ## we build a three layer model, 784 -> 64 -> 10 MLP_4 = keras.models.Sequential([ keras.layers.Dense(128, input_shape=(784,),activation='relu'), keras.layers.Dense(64,activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_4.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_4.fit(train_data[:10000],train_labels[:10000], batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history['val_accuracy']在该模型中加入early stopping,使用monitor='loss', patience = 2设置代码

2023-06-02 上传