SSRS--分页技术篇

作者:曲军昌

SSRS报表中分页的两种方法:

第一种方法:设置区域分页(顾名思义就是设置页脚和页眉之间的区域)。

1.首先把鼠标移到红色区域。


可以看到属性:


设置高度即可,可以达到分页的效果。


第二种分页方法:(得到所有的数据的条数平均分配)。

主要用到的方法:Ceiling(rownumber(nothing)/10)    10代表一页显示10条。

主要实现方法:用表举个例子,矩阵的方法也是一样的。

1. 右击详细信息 →添加组→添加父组

.

2. 弹出下图信息:


弹出这样的提示框之后,编辑函数:


点击确定即可。

3. 下面的框中将会出现Group1这个字段。


选中group1右击→可以看到组属性,点击打开。


编辑红色区域:


点击确定即可。

然后选择分页符,选择如下图所示


点击确定即可。

4 为了报表的美观不显示不必要的字段可以把group1字段删除掉。

如图所示

点击确定即可。


以上步骤完成报表的分页也就完成了。


我们可以看看我实例中的报表效果:



<think>嗯,用户遇到了两个问题:一个是运行Python脚本时出现的RuntimeError,具体是关于存储大小不匹配;另一个是nn.init.kaiming_normal被弃用的警告。我需要先分析这两个问题的原因,然后给出解决方案。首先看RuntimeError:'storagehas wrongbyte size'。这个错误通常发生在使用torch.load加载模型时,模型结构或PyTorch版本不匹配。用户可能是在不同版本的PyTorch之间保存和加载模型,导致张量存储大小不一致。例如,用户保存模型时用的PyTorch版本和现在加载时用的版本不同,或者模型文件被损坏。另外,用户的错误信息中提到预期的存储大小非常大,7667828046330154142,这看起来像是一个溢出或错误的值,可能模型文件本身有问题,或者加载方式不正确。接下来是nn.init.kaiming_normal被弃用的警告。查阅PyTorch文档,发现kaiming_normal_已经被弃用,推荐使用kaiming_normal_作为函数,或者可能参数有变化,比如添加了新的参数如mode或nonlinearity。用户需要更新代码,使用新的初始化方法,并确保参数正确。 针对RuntimeError的解决方案,首先检查PyTorch版本是否一致。用户可以使用condalist查看环境中的PyTorch版本,确保保存和加载模型的版本相同。如果版本不一致,更新或降级PyTorch到对应版本。其次,检查模型文件是否完整,尝试重新下载或生成模型文件。如果问题依旧,可能需要指定map_location参数,确保模型加载到正确的设备上,比如CPU。另外,用户提到的错误信息中有路径和信号中断,可能模型加载过程中被中断,导致文件损坏,需要重新保存模型。对于弃用警告,替换nn.init.kaiming_normal为nn.init.kaiming_normal_,注意函数后面的下划线,这是PyTorch的原地操作约定。同时,需要指定mode参数,比如是'fan_in'还是'fan_out',以及nonlinearity参数,如'relu'或'leaky_relu',以符合新的函数要求。例如,将原来的初始化代码改为带有这些参数的调用。此外,用户提到的conda环境问题,可能需要检查环境是否激活正确,或者是否存在多个Python环境导致版本冲突。建议用户创建新的conda环境,安装指定版本的PyTorch,确保环境干净。 最后,需要提醒用户备份模型文件,避免数据丢失,以及在修改代码后测试是否解决错误。如果问题仍未解决,可能需要进一步检查模型结构或寻求社区帮助。</think>### PyTorch运行时错误与初始化方法弃用问题解决方案 #### 一、RuntimeError: "storage has wrong byte size" 错误分析 该错误通常由以下原因导致: 1. **PyTorch版本不匹配**:模型保存与加载时的PyTorch版本差异会导致张量存储格式不兼容 2. **模型文件损坏**:文件传输中断或存储介质故障可能导致模型文件损坏 3. **设备不匹配**:尝试将GPU训练的模型直接加载到CPU环境(或反之)时可能出现兼容性问题 #### 二、分步解决方案 1. **验证PyTorch版本一致性** ```bash # 查看当前环境PyTorch版本 conda list | grep torch # 示例输出: # pytorch 2.0.1 py3.8_cuda11.8_0 ``` 若版本不一致,建议使用原始训练环境版本: ```bash conda install pytorch==x.x.x torchvision==x.x.x -c pytorch ``` 2. **安全加载模型文件** ```python import torch # 强制加载到CPU并忽略架构差异 model = torch.load('model.pth', map_location=torch.device('cpu'), _restore_shapes=False) ``` 3. **文件完整性验证** ```python import hashlib def check_file_hash(filename): with open(filename, "rb") as f: file_hash = hashlib.md5() chunk = f.read(8192) while chunk: file_hash.update(chunk) chunk = f.read(8192) return file_hash.hexdigest() original_hash = "a1b2c3d4e5f6..." # 原始文件MD5值 current_hash = check_file_hash("model.pth") assert original_hash == current_hash, "文件已损坏!" ``` #### 三、nn.init.kaiming_normal弃用警告处理 PyTorch 1.8+ 已弃用旧式初始化方法,新规范要求显式指定参数: ```python # 旧方法(已弃用) nn.init.kaiming_normal(param) # 新规范写法 torch.nn.init.kaiming_normal_( tensor, mode='fan_in', # 或'fan_out' nonlinearity='relu' # 可选: 'leaky_relu'需配合负slope ) # 完整示例 def init_weights(m): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') elif isinstance(m, nn.Linear): nn.init.kaiming_normal_(m.weight, mode='fan_in', nonlinearity='leaky_relu') ``` #### 四、环境配置建议 创建专用环境避免依赖冲突: ```bash conda create -n torch20 python=3.8 conda activate torch20 conda install pytorch==2.0.1 torchvision==0.15.2 -c pytorch ``` #### 五、进阶调试技巧 1. **选择性加载模型参数** ```python state_dict = torch.load('model.pth', map_location='cpu') model.load_state_dict({k: v for k, v in state_dict.items() if k in model.state_dict()}) ``` 2. **使用strict=False模式** ```python model.load_state_dict(torch.load('model.pth'), strict=False) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值