版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题9-1:针对一段水管监听的数据,在读取了该特征后,基于LSTM设计模型实现对其管道中流量进行预测。习题9.1答案importtorchimporttorch.nnasnnimporth5pyimportnumpyasnpclassCustomLSTM(nn.Module):
def__init__(self,input_size,hidden_size,num_layers,output_size):
super(CustomLSTM,self).__init__()
self.lstm=nn.LSTM(input_size,hidden_size,num_layers,batch_first=True)
self.fc=nn.Linear(hidden_size,output_size)
defforward(self,x):
h0=torch.zeros(self.num_layers,x.size(0),self.hidden_size).to(x.device)
c0=torch.zeros(self.num_layers,x.size(0),self.hidden_size).to(x.device)
out,_=self.lstm(x,(h0,c0))
out=self.fc(out[:,-1,:])
#Output
returnoutdeftrain_model(model,train_data,num_epochs,learning_rate):
criterion=nn.MSELoss()
optimizer=torch.optim.Adam(model.parameters(),lr=learning_rate)
forepochinrange(num_epochs):
fordataintrain_data:
inputs=torch.tensor(data[:,:-1],dtype=torch.float32)
target=torch.tensor(data[:,-1],dtype=torch.float32)
optimizer.zero_grad()
outputs=model(inputs.unsqueeze(0))
loss=criterion(outputs,target)
loss.backward()
optimizer.step()defpredict(model,input_data):
input_tensor=torch.tensor(input_data,dtype=torch.float32)
output=model(input_tensor.unsqueeze(0))
returnoutput.detach().numpy()defread_hdf5_sensor_data(file_path,flow_val):
f=h5py.File(file_path,"r")
data_DAS=f['DAS'][:]
cut_len=1024
sound_data=data_DAS[:,0]
#sound_data进行分割
sound_data_slice=[sound_data[i:i+cut_len]foriinrange(0,len(sound_data),cut_len)]
#Appendflow_valtoeachchunkasthelastelement
forchunkinsound_data_slice:
chunk.append(flow_val)
returnsound_data_slice#construct_train_data根据文件名和流量,构建数据集defconstruct_train_dataset():
flow_data1=read_hdf5_sensor_data('./0000003093.hdf5',flow_val=264.8)
flow_data2=read_hdf5_sensor_data('./0000003095.hdf5',flow_val=270.7)
flow_data3=read_hdf5_sensor_data('./0000003097.hdf5',flow_val=279.5)
sound_dataset=np.vstack((flow_data1,flow_data2,flow_data3))
returnsound_datasetif__name__=='__main__':
#构建数据集
sound_dataset=construct_train_dataset()
#流量预测准确性阈值
flow_threshold=10
#定义模型的输入和层数以及输出
input_size=1024
hidden_size=64
num_layers=1
output_size=1
model=CustomLSTM(input_size,hidden_size,num_layers,output_size)
#训练模型
num_epochs=100
learning_rate=0.001
train_model(model,sound_dataset,num_epochs,learning_rate)
#保存模型
torch.save(model.state_dict(),'./trained_model.pth')
#验证该模型
total_samples=len(sound_dataset)
misclassification_count=0
fordatainsound_dataset:
inputs=torch.tensor(data[:,:-1],dtype=torch.float32)
target=torch.tensor(data[:,-1],dtype=torch.float32)
output=model(inputs.unsqueeze(0))
ifabs(output.item()-target.item())>flow_threshold:
misclassification_count+=1
misclassification_rate=misclassification_count/total_samples
print(f"误识别率:{misclassification_rate}")习题9.2:试用MTCNN网络对AttributesDataset(CelebA)人脸数据集中的人脸进行定位并显示相应的定位点。参考模型-MTCNN-sample.py参考图像数据库-CelebADataset(.hk)习题9.2答案importmatplotlib.pyplotaspltfrommtcnnimportMTCNNimportcv2importnumpyasnpfromPILimportImage#定义一个函数来绘制检测结果defdraw_faces(image,result_list):data=np.array(image)fori,faceinenumerate(result_list):#获取边界框坐标x,y,w,h=face['box']#绘制边界框cv2.rectangle(data,(x,y),(x+w,y+h),(0,155,255),2)#标记关键点forkeyin['left_eye','right_eye','nose','mouth_left','mouth_right']:cv2.circle(data,(face['keypoints'][key][0],face['keypoints'][key][1]),2,(0,155,255),20)plt.imshow(data)plt.show()#初始化MTCNN模型detector=MTCNN()#加载CelebA数据集中的图像#假设你已经知道CelebA数据集的路径,并且有一个图像的路径image_path=r'E:\14datasets\CelebAMask-HQ\CelebAMask-HQ\CelebA-HQ-img\0.jpg'image=Image.open(image_path)#转换图像为RGB格式image=image.convert('RGB')#将图像转换为numpy数组pixels=np.array(image)#使用MTCNN检测人脸result=detector.detect_faces(pixels)#在图像上绘制检测结果draw_faces(image,result)习题9-3:试用VIT网络对交通道路上的人、车进行识别。模型参考-/google-research/vision_transformer参考数据集-TheUA-DETRACBenchmarkSuite()习题9.3答案importmathfromPILimportImageimportrequestsimportmatplotlib.pyplotaspltimportipywidgetsaswidgetsfromIPython.displayimportdisplay,clear_outputimporttorchfromtorchimportnnfromtorchvision.modelsimportresnet50importtorchvision.transformsasTtorch.set_grad_enabled(False);#COCOclassesCLASSES=['N/A','person','bicycle','car','motorcycle','airplane','bus','train','truck','boat','trafficlight','firehydrant','N/A','stopsign','parkingmeter','bench','bird','cat','dog','horse','sheep','cow','elephant','bear','zebra','giraffe','N/A','backpack','umbrella','N/A','N/A','handbag','tie','suitcase','frisbee','skis','snowboard','sportsball','kite','baseballbat','baseballglove','skateboard','surfboard','tennisracket','bottle','N/A','wineglass','cup','fork','knife','spoon','bowl','banana','apple','sandwich','orange','broccoli','carrot','hotdog','pizza','donut','cake','chair','couch','pottedplant','bed','N/A','diningtable','N/A','N/A','toilet','N/A','tv','laptop','mouse','remote','keyboard','cellphone','microwave','oven','toaster','sink','refrigerator','N/A','book','clock','vase','scissors','teddybear','hairdrier','toothbrush']#colorsforvisualizationCOLORS=[[0.000,0.447,0.741],[0.850,0.325,0.098],[0.929,0.694,0.125],[0.494,0.184,0.556],[0.466,0.674,0.188],[0.301,0.745,0.933]]#standardPyTorchmean-stdinputimagenormalizationtransform=T.Compose([T.Resize(800),T.ToTensor(),T.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])])#foroutputboundingboxpost-processingdefbox_cxcywh_to_xyxy(x):x_c,y_c,w,h=x.unbind(1)b=[(x_c-0.5*w),(y_c-0.5*h),(x_c+0.5*w),(y_c+0.5*h)]returntorch.stack(b,dim=1)defrescale_bboxes(out_bbox,size):img_w,img_h=sizeb=box_cxcywh_to_xyxy(out_bbox)b=b*torch.tensor([img_w,img_h,img_w,img_h],dtype=torch.float32)returnbdefplot_results(pil_img,prob,boxes):plt.figure(figsize=(16,10))plt.imshow(pil_img)ax=plt.gca()colors=COLORS*100forp,(xmin,ymin,xmax,ymax),cinzip(prob,boxes.tolist(),colors):ax.add_patch(plt.Rectangle((xmin,ymin),xmax-xmin,ymax-ymin,fill=False,color=c,linewidth=3))cl=p.argmax()text=f'{CLASSES
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年包头钢铁集团有限责任公司人员招聘考试备考试题及答案详解
- 2026年北京金隅集团股份有限公司人员招聘参考题库及答案详解
- 2026年江汉石油工程有限公司人员招聘考试题库及答案详解
- 2026年宁夏交通投资集团有限公司人员招聘考试参考试题及答案详解
- 2025年市场策略优化在电竞产业的可行性分析报告
- 2026年沈阳地铁集团有限公司人员招聘考试备考题库及答案详解
- 2026年贵州电信人员招聘考试备考题库及答案详解
- 2026年河南省机场集团有限公司人员招聘考试题库及答案详解
- 2026年天津移动人员招聘考试备考题库及答案详解
- 2026年中国邮政集团有限公司天津市分公司人员招聘笔试参考试题及答案详解
- 2025年合肥水投线上笔试题目及答案
- 职工年度体检常见异常报告解读指南
- 大队长笔试题目及答案
- GB/T 45021.1-2024光伏组件性能测试和能量评定第1部分:辐照度和温度性能测量和功率评定
- GB/T 7991.10-2024搪玻璃层试验方法第10部分:生产和贮存食品的搪玻璃设备搪玻璃层中重金属离子溶出量的测定和限值
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 柏拉图法则分析课件
- 汽轮机DEH简介和SGC顺控启动
- 《普通心理学》彭聃龄版解析
- JJF 1449-2014崩解时限测试仪校准规范
- MR有载调压开关课件
评论
0/150
提交评论