代码段 数据段 堆栈段

代码段:存放程序机器码和只读数据
数据段:存放程序中的静态数据
堆栈段:存放程序中的动态数据
堆段需要malloc手动申请,free手动释放
栈(stack):栈又称堆栈, 是用户存放程序临时创建的局部变量,也就是函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)
在这里插入图片描述
当调用一个函数时,将创建一个栈桢来支持该函数的执行。栈桢包含函数的局部变量和调用者传递给函数的参数
堆栈的内存地址越来越低,即向地址小的地方增长
1.参数逆序压栈
2.返回地址压栈

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

import collections
import numpy as np
import tensorflow as tf
import tensorflow_federated as tff
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# matplotlib画图中中文显示会有问题,需要这两行设置默认字体
emnist_train,emnist_test=tff.simulation.datasets.emnist.load_data()
example_dataset=emnist_train.create_tf_dataset_for_client(emnist_train.client_ids[0])
example_element=next(iter(example_dataset))
example_element['label'].numpy()
#设置图的宽,高
# fig=plt.figure(figsize=(12,7))
# fig.suptitle('我')
# for i in range(6):
#     client_dataset=emnist_train.create_tf_dataset_for_client(emnist_train.client_ids[i])
#     #为字典设默认值
#     plot_data=collections.defaultdict(list)
#     for example in client_dataset:
#         label=example['label'].numpy()
#         plot_data[label].append(label)
#         plt.subplot(2,3,i+1)
#         plt.title('客户 {}'.format(i))
#     for j in range(10):
#         plt.hist(plot_data[j],density=False,bins=[0,1,2,3,4,5,6,7,8,9,10])
# plt.show()
NUM_CLIENTS =10
#向前和向后传播中所有批次的单次训练迭代 one epoch = numbers of iterations = N = 训练样本的数量/batch_size
NUM_EPOCHS=5
#小批的梯度下降,把数据分为20批,按批来更新参数
BATCH_SIZE=20
SHUFFLE_BUFFER=100
PREFETCH_BUFFER=10
def preprocess(dataset):
    def batch_format_fn(element):
        #将图像像素展开,返回OrderedDict对象的特征
        return collections.OrderedDict(x=tf.reshape(element['pixels'],[-1,784]),
                                       y=tf.reshape(element['label'],[-1,1]))
    return dataset.repeat(NUM_EPOCHS).shuffle(SHUFFLE_BUFFER).batch(
        BATCH_SIZE).map(batch_format_fn).prefetch(PREFETCH_BUFFER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GoldMinnie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值