首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

1234523767123

前端 108.52KB 9 需要积分: 1
立即下载

资源介绍:

1234523767123
# train.py import numpy as np import pandas as pd import torch import torch.nn as nn from torch.utils.data import Dataset, DataLoader, random_split from sklearn.preprocessing import OneHotEncoder from model import FCNet import os import pickle import sklearn from packaging import version # 设置随机种子以确保结果可复现 torch.manual_seed(42) np.random.seed(42) # 自定义数据集 class AminoAcidDataset(Dataset): def __init__(self, single_csv, double_csv, triple_csv): # 读取 CSV 文件,指定没有表头并手动命名列 single = pd.read_csv(single_csv, header=None, names=['AminoAcid', 'Value']) double = pd.read_csv(double_csv, header=None, names=['AminoAcidPair', 'Value1', 'Value2']) triple = pd.read_csv(triple_csv, header=None, names=['AminoAcidTriple', 'Value1', 'Value2']) # 创建氨基酸到数值的映射字典 self.single_dict = single.set_index('AminoAcid')['Value'].to_dict() # 获取所有独热编码的氨基酸,加上一个填充字符 '-' self.amino_acids = sorted(self.single_dict.keys()) + ['-'] # 根据 scikit-learn 版本选择参数 if version.parse(sklearn.__version__) >= version.parse("1.2"): self.encoder = OneHotEncoder(sparse_output=False) # 新版本使用 sparse_output else: self.encoder = OneHotEncoder(sparse=False) # 旧版本使用 sparse self.encoder.fit(np.array(self.amino_acids).reshape(-1, 1)) # 准备数据 self.X = [] self.y = [] # 处理单个氨基酸,补齐为三个位置 for index, row in single.iterrows(): aa = row['AminoAcid'] if aa not in self.single_dict: print(f"警告:氨基酸 '{aa}' 不在单个氨基酸字典中,已跳过。") continue # 填充为三个位置,例如 'A--' aa_triplet = aa + '--' try: one_hot1 = self.encoder.transform([[aa_triplet[0]]])[0] one_hot2 = self.encoder.transform([[aa_triplet[1]]])[0] one_hot3 = self.encoder.transform([[aa_triplet[2]]])[0] except Exception as e: print(f"错误:无法对氨基酸 '{aa_triplet}' 进行编码,已跳过。错误信息:{e}") continue value1_aa1 = self.single_dict.get(aa_triplet[0], 0.0) value1_aa2 = self.single_dict.get(aa_triplet[1], 0.0) value1_aa3 = self.single_dict.get(aa_triplet[2], 0.0) feature_part1 = np.concatenate([one_hot1, [value1_aa1]]) feature_part2 = np.concatenate([one_hot2, [value1_aa2]]) feature_part3 = np.concatenate([one_hot3, [value1_aa3]]) feature = np.stack([feature_part1, feature_part2, feature_part3]) # (3, N + 1) self.X.append(feature) self.y.append([float(row['Value']), 0.0]) # 对于单个氨基酸,第二个值设为0.0 # 处理双氨基酸组合,补齐为三个位置 for index, row in double.iterrows(): aa_pair = row['AminoAcidPair'] if not isinstance(aa_pair, str): print(f"警告:第 {index} 行的氨基酸对不是字符串,值为 '{aa_pair}',已跳过。") continue if len(aa_pair) != 2: print(f"警告:第 {index} 行的氨基酸对 '{aa_pair}' 不包含两个氨基酸,已跳过。") continue aa1, aa2 = aa_pair[0], aa_pair[1] if aa1 not in self.single_dict or aa2 not in self.single_dict: print(f"警告:氨基酸 '{aa1}' 或 '{aa2}' 不在单个氨基酸字典中,已跳过。") continue # 填充为三个位置,例如 'AC-' aa_triplet = aa1 + aa2 + '-' try: one_hot1 = self.encoder.transform([[aa_triplet[0]]])[0] one_hot2 = self.encoder.transform([[aa_triplet[1]]])[0] one_hot3 = self.encoder.transform([[aa_triplet[2]]])[0] except Exception as e: print(f"错误:无法对氨基酸 '{aa_triplet}' 进行编码,已跳过。错误信息:{e}") continue value1_aa1 = self.single_dict.get(aa_triplet[0], 0.0) value1_aa2 = self.single_dict.get(aa_triplet[1], 0.0) value1_aa3 = self.single_dict.get(aa_triplet[2], 0.0) feature_part1 = np.concatenate([one_hot1, [value1_aa1]]) feature_part2 = np.concatenate([one_hot2, [value1_aa2]]) feature_part3 = np.concatenate([one_hot3, [value1_aa3]]) feature = np.stack([feature_part1, feature_part2, feature_part3]) # (3, N + 1) self.X.append(feature) self.y.append([float(row['Value1']), float(row['Value2'])]) # 处理三个氨基酸组合 for index, row in triple.iterrows(): aa_triple = row['AminoAcidTriple'] if not isinstance(aa_triple, str): print(f"警告:第 {index} 行的氨基酸三联不是字符串,值为 '{aa_triple}',已跳过。") continue if len(aa_triple) != 3: print(f"警告:第 {index} 行的氨基酸三联 '{aa_triple}' 不包含三个氨基酸,已跳过。") continue aa1, aa2, aa3 = aa_triple[0], aa_triple[1], aa_triple[2] if aa1 not in self.single_dict or aa2 not in self.single_dict or aa3 not in self.single_dict: print(f"警告:氨基酸 '{aa1}', '{aa2}' 或 '{aa3}' 不在单个氨基酸字典中,已跳过。") continue try: one_hot1 = self.encoder.transform([[aa1]])[0] one_hot2 = self.encoder.transform([[aa2]])[0] one_hot3 = self.encoder.transform([[aa3]])[0] except Exception as e: print(f"错误:无法对氨基酸 '{aa1}{aa2}{aa3}' 进行编码,已跳过。错误信息:{e}") continue value1_aa1 = self.single_dict.get(aa1, 0.0) value1_aa2 = self.single_dict.get(aa2, 0.0) value1_aa3 = self.single_dict.get(aa3, 0.0) feature_part1 = np.concatenate([one_hot1, [value1_aa1]]) feature_part2 = np.concatenate([one_hot2, [value1_aa2]]) feature_part3 = np.concatenate([one_hot3, [value1_aa3]]) feature = np.stack([feature_part1, feature_part2, feature_part3]) # (3, N + 1) self.X.append(feature) self.y.append([float(row['Value1']), float(row['Value2'])]) self.X = np.array(self.X, dtype=np.float32) # 形状:(样本数, 3, N + 1) self.y = np.array(self.y, dtype=np.float32) # 形状:(样本数, 2) def __len__(self): return len(self.X) def __getitem__(self, idx): return self.X[idx], self.y[idx] def train(): # 数据文件路径 single_csv = '../data/single.csv' double_csv = '../data/double.csv' triple_csv = '../data/triple.csv' # 检查文件是否存在 if not os.path.exists(single_csv): print(f"错误:单个氨基酸数据文件 '{single_csv}' 不存在。") return if not os.path.exists(double_csv): print(f"错误:组合氨基酸数据文件 '{double_csv}' 不存在。") return if not os.path.exists(triple_csv): print(f"错误:三联氨基酸数据文件 '{triple_csv}' 不存在。") return # 创建数据集 dataset = AminoAcidDataset(single_csv, double_csv, triple_csv) print(f"总样本数量:{len(dataset)}") if len(dataset) == 0: print("错误:数据集中没有有效的样本。请检查数据文件的内容和格式。") return # 数据集划分:80% 训练,20% 验证 train_size = int(0.8 * len(dataset)) val_size = len(dataset) - train_size train_dataset, val_dataset = rando

资源文件列表:

adsorption_proj_1+2--2_version4.0 (perfect version).zip 大约有104个文件
  1. adsorption_proj_1+2--2_version4.0 (perfect version)/
  2. __MACOSX/._adsorption_proj_1+2--2_version4.0 (perfect version) 274B
  3. adsorption_proj_1+2--2_version4.0 (perfect version)/.DS_Store 6KB
  4. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._.DS_Store 120B
  5. adsorption_proj_1+2--2_version4.0 (perfect version)/predicting.py 4.23KB
  6. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._predicting.py 174B
  7. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/
  8. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._dataset 174B
  9. adsorption_proj_1+2--2_version4.0 (perfect version)/models/
  10. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._models 163B
  11. adsorption_proj_1+2--2_version4.0 (perfect version)/__pycache__/
  12. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.___pycache__ 163B
  13. adsorption_proj_1+2--2_version4.0 (perfect version)/model.py 674B
  14. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._model.py 163B
  15. adsorption_proj_1+2--2_version4.0 (perfect version)/preprocessing.py 2.61KB
  16. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._preprocessing.py 217B
  17. adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/
  18. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._scripts 163B
  19. adsorption_proj_1+2--2_version4.0 (perfect version)/model/
  20. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._model 174B
  21. adsorption_proj_1+2--2_version4.0 (perfect version)/train.py 5.22KB
  22. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._train.py 217B
  23. adsorption_proj_1+2--2_version4.0 (perfect version)/data/
  24. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._data 163B
  25. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/
  26. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/._.idea 174B
  27. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/.DS_Store 6KB
  28. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/._.DS_Store 120B
  29. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/
  30. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/._middlefile 174B
  31. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/
  32. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/._rawdata 174B
  33. adsorption_proj_1+2--2_version4.0 (perfect version)/models/model.pth 22.3KB
  34. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/models/._model.pth 163B
  35. adsorption_proj_1+2--2_version4.0 (perfect version)/__pycache__/model.cpython-310.pyc 993B
  36. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/__pycache__/._model.cpython-310.pyc 163B
  37. adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/train3.py 10.65KB
  38. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/._train3.py 163B
  39. adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/predict3.py 4.45KB
  40. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/._predict3.py 163B
  41. adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/predict.py 3.79KB
  42. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/._predict.py 163B
  43. adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/train.py 7.5KB
  44. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/scripts/._train.py 163B
  45. adsorption_proj_1+2--2_version4.0 (perfect version)/model/weights/
  46. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/._weights 174B
  47. adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/
  48. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/.___pycache__ 174B
  49. adsorption_proj_1+2--2_version4.0 (perfect version)/model/simpleNN.py 702B
  50. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/._simpleNN.py 174B
  51. adsorption_proj_1+2--2_version4.0 (perfect version)/model/FCNet.py 668B
  52. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/._FCNet.py 163B
  53. adsorption_proj_1+2--2_version4.0 (perfect version)/data/single.csv 297B
  54. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/data/._single.csv 287B
  55. adsorption_proj_1+2--2_version4.0 (perfect version)/data/double.csv 3.51KB
  56. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/data/._double.csv 163B
  57. adsorption_proj_1+2--2_version4.0 (perfect version)/data/single_dict.pkl 276B
  58. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/data/._single_dict.pkl 163B
  59. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/adsorption_proj_1+2--2_version4.0 (perfect version).iml 486B
  60. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/._adsorption_proj_1+2--2_version4.0 (perfect version).iml 217B
  61. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/inspectionProfiles/
  62. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/._inspectionProfiles 174B
  63. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/.gitignore 50B
  64. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/._.gitignore 174B
  65. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/workspace.xml 7.9KB
  66. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/._workspace.xml 217B
  67. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/modules.xml 361B
  68. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/._modules.xml 174B
  69. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/misc.xml 284B
  70. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/._misc.xml 217B
  71. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/test.npy 53.61KB
  72. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/._test.npy 174B
  73. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/y_data.npy 3.81KB
  74. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/._y_data.npy 174B
  75. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/x_data.npy 77.56KB
  76. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/._x_data.npy 174B
  77. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/prediction.npy 1.4KB
  78. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/middlefile/._prediction.npy 174B
  79. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/single.csv 308B
  80. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/._single.csv 230B
  81. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/double_pred_result.csv 3.22KB
  82. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/._double_pred_result.csv 174B
  83. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/double - all data.csv 5.72KB
  84. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/._double - all data.csv 174B
  85. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/double.csv 3.53KB
  86. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/._double.csv 174B
  87. adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/double_need_pred.csv 996B
  88. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/dataset/rawdata/._double_need_pred.csv 174B
  89. adsorption_proj_1+2--2_version4.0 (perfect version)/model/weights/weights.model 21.38KB
  90. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/weights/._weights.model 217B
  91. adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/simpleNN.cpython-37.pyc 890B
  92. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/._simpleNN.cpython-37.pyc 174B
  93. adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/FCNet.cpython-310.pyc 1014B
  94. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/._FCNet.cpython-310.pyc 163B
  95. adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/simpleNN.cpython-310.pyc 1002B
  96. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/._simpleNN.cpython-310.pyc 163B
  97. adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/simpleNN.cpython-39.pyc 904B
  98. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/._simpleNN.cpython-39.pyc 174B
  99. adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/simpleNN.cpython-38.pyc 978B
  100. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/model/__pycache__/._simpleNN.cpython-38.pyc 174B
  101. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/inspectionProfiles/profiles_settings.xml 174B
  102. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/inspectionProfiles/._profiles_settings.xml 174B
  103. adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/inspectionProfiles/Project_Default.xml 1.55KB
  104. __MACOSX/adsorption_proj_1+2--2_version4.0 (perfect version)/.idea/inspectionProfiles/._Project_Default.xml 174B
0评论
提交 加载更多评论
其他资源 02617-main.zip
02617-main.zip
基于springboot的“衣依”服装销售平台的设计与实现(代码+数据库+LW)
摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了“衣依”服装销售平台的开发全过程。通过分析企业对于“衣依”服装销售平台的需求,创建了一个计算机管理“衣依”服装销售平台的方案。文章介绍了“衣依”服装销售平台的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 本“衣依”服装销售平台管理员功能有管理员和用户两个角色。管理员有个人中心,用户管理,商品分类管理,颜色管理,尺码管理,商品信息管理,订单评价管理,系统管理,订单管理。用户可以注册登录,登录后在前台首页可以查看商品信息,商品资讯,在个人中心可以修改个人资料,查看我的订单,我的地址,我的收藏等信息,后台管理可以查看自己的订单。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得“衣依”服装销售平台管理工作系统化、规范化。 关键词:“衣依”服装销售平台;Spring Boot框架;MYSQL数据库
springboot美容院管理系统(代码+数据库+LW)
摘  要 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让美容院信息的管理模式进行升级,也为了更好的维护美容院信息,美容院管理系统的开发运用就显得很有必要。并且通过开发美容院管理系统,不仅可以让所学的SpringBoot框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。 美容院管理系统根据调研,确定其实现的功能主要包括美容用品管理,美容项目管理,美容部位管理,销量信息管理,订单管理,美容项目预约信息管理等功能。 借助于美容院管理系统这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对美容院信息实施规范化处理,让美容院信息通过电子的方式进行保存,无论是管理人员检索美容院信息,维护美容院信息都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。 关键字:美容院管理系统,SpringBoot框架,MySQL
基于Servlet和JSP实现的登录Demo
《基于Servlet和JSP实现的登录Demo》项目是一个简单的 Java Web 应用示例,展示了如何使用 Servlet 和 JSP 搭建基础的用户登录功能。项目通过 Java Servlet 处理用户请求,使用 JSP 构建前端页面,并结合 MySQL 数据库验证用户身份。用户可以通过登录页面提交账号和密码,后端接口会对用户输入进行校验,并返回登录结果。本项目适合 Java Web 初学者,旨在帮助学习 Servlet 和 JSP 的基础用法,掌握表单提交、请求转发、数据库连接等关键技术点。项目环境包括 IntelliJ IDEA、Apache Tomcat 和 MySQL,支持 JDK 8 及以上版本。
SmartSoftHelp20 ,C# Net9 API代码生成,应用程序优化,数据库高并发优化,服务器性能优化,微软最新架构!
SmartSoftHelp 20 极简,极速,极致 提高程序员内涵,改变编程习惯,智慧与效率的化身! 1.软件性能优化 2.web应用优化(json,sql ,web前端html,css,js压缩格式化代码,web客户端性能提升) 3.数据库性能优化,数据库参数设置,查询,数据库连接字符串优化,SQL耗时优化,SQL格式化,SQL美化 4.服务器高并发性能优化( linux ,windows 服务器性能优化提升) 5.C#前端后端代码自动生成(netframework ,netcore) 6.服务器安全(端口号扫描,文件权限,防火墙,服务) 7.web应用程序5级缓存优化 8.程序版权著作保护(图片,程序,软件应用,公司版权保护,著作权,开发作者信息设置) 9.代码生成开源,自定义灵活生成 10.高复用功能代码DLL公共类库(常见功能经典收藏) 11.Net 8 API 特别版,SwaggerUI API,前端,后端,数据库操作、全部异步实现,最好的架构,最优的代码,最快的实现,UI增删改查,控制器,数据库经典三层架构,全部一键生成。 12.微软最新架构Net9
11月16日-责任担当与100%执行训练资料.zip
11月16日-责任担当与100%执行训练资料.zip
11月16日-责任担当与100%执行训练资料.zip
Qt QChart绘制跟随鼠标的十字线
Qt QChart绘制跟随鼠标的十字线
Qt QChart+Eigen库 绘制线性回归图表,源代码和库都在压缩包里
Qt QChart+Eigen库 绘制线性回归图表,源代码和库都在压缩包里