tensorflow2.0 简单搭建4层全连接神经网络

利用tf的框架搭建一个如图的神经网络
在这里插入图片描述

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers,optimizers,losses,datasets,Sequential

model=keras.Sequential([
    layers.Dense(256,activation='relu'),
    layers.Dense(256,activation='relu'),
    layers.Dense(256,activation='relu'),
    layers.Dense(10)
])

model.build(input_shape=(4,784))#模型的搭建
model.summary()#查看每一层的信息

#。以第一层为例,输入特征长度为 784,输 出特征长度为 256,当前层的参数量为 784 ∙ 256 + 256 = 200960 ,
# 同样的方法可以计算第 二、三、四层的参数量.

在这里插入图片描述

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是基于TensorFlow 2.0实现基于卷积神经网络的人脸识别的代码,包括对不同参数进行实验对比的部分: ```python import tensorflow as tf from tensorflow.keras import layers, models, optimizers import matplotlib.pyplot as plt # 数据集准备 (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.cifar10.load_data() train_images, test_images = train_images / 255.0, test_images / 255.0 # 搭建卷积神经网络 def create_model(conv_layers, kernel_size, pool_size, dropout_rate, optimizer): model = models.Sequential() model.add(layers.Conv2D(conv_layers, kernel_size, activation='relu', input_shape=(32, 32, 3))) model.add(layers.MaxPooling2D(pool_size=pool_size)) model.add(layers.Conv2D(conv_layers*2, kernel_size, activation='relu')) model.add(layers.MaxPooling2D(pool_size=pool_size)) model.add(layers.Conv2D(conv_layers*4, kernel_size, activation='relu')) model.add(layers.Flatten()) model.add(layers.Dropout(dropout_rate)) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax')) model.compile(optimizer=optimizer, loss='sparse_categorical_crossentropy', metrics=['accuracy']) return model # 实验对比 conv_layers_list = [16, 32, 64] kernel_size_list = [(3, 3), (5, 5), (7, 7)] pool_size_list = [(2, 2), (3, 3), (4, 4)] dropout_rate_list = [0.2, 0.3, 0.4] optimizer_list = [optimizers.Adam(), optimizers.SGD()] results = {} for conv_layers in conv_layers_list: for kernel_size in kernel_size_list: for pool_size in pool_size_list: for dropout_rate in dropout_rate_list: for optimizer in optimizer_list: model = create_model(conv_layers, kernel_size, pool_size, dropout_rate, optimizer) history = model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels)) key = f"conv_layers:{conv_layers},kernel_size:{kernel_size},pool_size:{pool_size},dropout_rate:{dropout_rate},optimizer:{optimizer}" results[key] = history # 结果展示 for key, history in results.items(): plt.plot(history.history['accuracy'], label='train') plt.plot(history.history['val_accuracy'], label='test') plt.title(key) plt.legend() plt.show() ``` 在以上代码中,我们先加载了CIFAR-10数据集,并将像素值缩放到0到1之间。接着我们使用函数`create_model`搭建了卷积神经网络,并设置了不同的卷积数量、卷积核大小、池化大小、dropout参数、优化器等参数。在实验对比部分,我们使用了嵌套循环,对不同的参数进行实验对比,并将训练结果保存在字典`results`中。最后,我们使用Matplotlib将不同实验的训练集和测试集准确率进行可视化展示。 希望以上代码可以帮助您实现基于TensorFlow 2.0的人脸识别,并对不同参数进行实验对比。如果还有疑问,欢迎继续追问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值