1.单个文件数据清洗

import re
f=open("/Users/mingai/Downloads/4l8hA-1155-38.69.pdb","r")
lines=f.readlines()
f = open('/Users/mingai/Downloads/4l8hA-1155-38.69.txt','w')
ans=[]
patt = '-?\d+\.\d+'
for raw in lines:
list = []
while(re.search(patt,raw)):
c1 = re.search(patt, raw).group()
list.append(c1)
raw=raw.replace(c1,"",1)
if list != []:
ans.append(list[:3])
for i in ans:
if i != []:
f.write(str(i))
f.close()

 

2.时间戳

量化是十分重要的思想,数据多,时间长,什么叫多,什么单位级别的,什么叫慢,大概执行需要多久,所以与之相关,时间戳和容量的计算就是十分重要的,比如一个程序耗时十分长,是哪个步骤导致的时间长,最终总共多久 是我们需要明确的问题

在此先说时间戳的问题

import datetime

因为数据量特别大,跑数据存储的一遍超级慢,所以痛定思痛,要量化产出

import datetime
t1 = datetime.datetime.now()
for i in range(100):
    print(i)
t2 = datetime.datetime.now()
print(t2-t1)
#datetime.timedelta(0, 3, 758215)
print((t2-t1).seconds)
print(datetime.datetime.now())

3.多线程,开CUDA加速方法

4.很好的带图像显示的方法

# -*- coding:utf-8 -*-
# author:zhangwei

import torch
import matplotlib.pyplot as plt

x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)  # x data (tensor), shape=(100, 1)
y = x.pow(2) + 0.2*torch.rand(x.size())                 # noisy y data (tensor), shape=(100, 1)
input=[[[0.000,0.000,0.000],[1.458,0.000,0.000],[2.009,1.420,0.000],[1.368,2.345,-0.500],[1.988,-0.778,-1.196],[1.988,-0.777,-1.195],[-0.500,-0.433,-0.750],[3.200,1.587,0.564],[3.932,2.844,0.452],[4.835,2.847,-0.775],[5.871,2.183,-0.797],[4.758,3.097,1.714],[5.001,4.140,3.538],[3.610,0.824,1.084],[4.435,3.599,-1.795],[5.049,3.491,-3.113],[5.933,4.696,-3.409],[5.644,5.811,-2.978],[3.968,3.344,-4.191],[3.467,2.141,-5.012],[3.687,4.263,-1.654],[7.013,4.463,-4.149],[7.811,5.551,-4.701],[7.487,5.780,-6.172],[8.111,6.610,-6.833],[9.304,5.259,-4.532],[10.764,5.480,-3.682],[7.287,3.509,-4.333],[6.507,5.040,-6.679],[5.945,5.311,-7.997],[4.506,5.799,-7.894],[3.727,5.297,-7.084],[5.989,4.062,-8.897],[6.281,3.637,-9.172],[6.141,4.271,-6.137],[4.160,6.782,-8.718],[2.860,7.436,-8.627],[2.124,7.388,-9.959],[2.708,7.644,-11.012],[2.996,8.904,-8.180],[2.883,9.337,-7.656],[4.813,7.083,-9.427],[0.838,7.057,-9.908],[0.037,6.905,-11.116],[-0.633,8.218,-11.502],[-1.322,8.836,-10.691],[-1.044,5.821,-10.945],[-1.206,5.270,-10.838],[0.404,6.907,-9.008],[-0.426,8.639,-12.745],[-1.157,9.771,-13.302],[-1.286,9.652,-14.815],[-0.467,9.005,-15.469],[-0.463,11.086,-12.927],[-0.788,12.183,-11.896],[0.255,8.163,-13.319],[-2.318,10.281,-15.367],[-2.563,10.237,-16.804],[-1.526,11.053,-17.565],[-0.644,11.667,-16.965],[-2.563,10.237,-16.804],[-2.950,10.802,-14.776],[-1.637,11.055,-18.889],[-0.584,11.587,-19.745],[-0.943,12.974,-20.263],[-0.525,13.368,-21.352],[-0.288,10.654,-20.905],[0.366,9.864,-21.126],[-2.473,10.679,-19.313],[-1.721,13.710,-19.477],[-2.006,15.109,-19.775],[-1.009,16.033,-19.086],[-0.235,15.601,-18.232],[-3.433,15.498,-19.347],[-4.481,15.517,-19.648],[-2.125,13.291,-18.652],[-1.034,17.307,-19.463],[-0.000,18.248,-19.048],[-0.199,18.683,-17.602],[-1.142,18.251,-16.938],[0.000,18.248,-19.048],[-1.787,17.632,-20.051],[0.695,19.539,-17.119],[0.694,19.937,-15.716],[-0.594,20.662,-15.350],[-0.975,20.719,-14.180],[1.902,20.824,-15.410],[3.825,21.030,-14.553],[1.392,19.925,-17.739],[-1.262,21.216,-16.356],[-2.480,21.986,-16.135],[-3.720,21.119,-16.309],[-4.847,21.596,-16.176],[-2.538,23.183,-17.088],[-2.336,24.181,-17.107],[-0.918,21.099,-17.298],[-3.506,19.842,-16.607],[-4.606,18.905,-16.799],[-5.282,19.118,-18.148],[-6.455,18.790,-18.324],[-4.607,18.904,-16.799],[-2.556,19.512,-16.703],[-4.534,19.669,-19.098],[-5.060,19.929,-20.432],[-4.732,18.788,-21.387],[-5.014,18.866,-22.583],[-4.508,21.247,-20.978],[-4.814,23.293,-21.420],[-3.576,19.913,-18.891],[-4.135,17.729,-20.851],[-3.853,16.532,-21.634],[-4.989,15.523,-21.525],[-5.620,15.394,-20.476],[-2.543,15.886,-21.173],[-0.845,15.708,-21.533],[-3.870,17.754,-19.877],[-5.245,14.808,-22.616],[-6.343,13.851,-22.665],[-5.973,12.629,-23.496],[-5.372,12.752,-24.563],[-7.621,14.485,-23.245],[-8.047,14.885,-23.233],[-4.663,14.932,-23.433],[-6.335,11.451,-23.001],[-6.165,10.216,-23.758],[-7.431,9.370,-23.723],[-7.991,9.118,-22.656],[-4.975,9.419,-23.212],[-3.539,9.199,-23.726],[-6.738,11.409,-22.076],[-7.878,8.934,-24.895],[-9.067,8.096,-24.998],[-8.694,6.637,-25.230],[-8.027,6.305,-26.209],[-9.993,8.566,-26.136],[-10.597,8.868,-26.270],[-7.382,9.189,-25.737],[-9.129,5.769,-24.322],[-8.780,4.355,-24.385],[-10.002,3.499,-24.689],[-10.752,3.127,-23.786],[-8.131,3.911,-23.069],[-6.672,3.614,-22.670],[-9.717,6.098,-23.570],[-10.198,3.188,-25.966],[-11.212,2.222,-26.373],[-10.787,0.800,-26.028],[-9.620,0.545,-25.733],[-11.521,2.333,-27.854],[-12.202,2.834,-28.476],[-9.631,3.633,-26.673],[-11.742,-0.123,-26.067],[-11.458,-1.530,-25.816],[-10.240,-1.995,-26.604],[-9.429,-2.778,-26.108],[-12.741,-2.257,-26.252],[-13.286,-0.619,-26.705],[-10.117,-1.510,-27.835],[-8.966,-1.826,-28.672],[-7.663,-1.427,-27.990],[-6.697,-2.189,-27.983],[-9.079,-1.212,-30.059],[-9.557,-0.974,-32.481],[-10.840,-0.906,-28.200],[-7.644,-0.228,-27.418],[-6.464,0.268,-26.719],[-6.548,-0.018,-25.225],[-5.744,0.487,-24.441],[-6.464,0.268,-26.719],[-8.468,0.354,-27.468],[-7.526,-0.829,-24.837],[-7.720,-1.179,-23.435],[-7.193,-2.577,-23.138],[-7.628,-3.556,-23.744],[-9.205,-1.105,-23.034],[-9.663,-0.744,-22.667],[-8.150,-1.214,-25.531],[-6.255,-2.663,-22.201],[-5.649,-3.939,-21.839],[-6.709,-4.957,-21.435],[-7.513,-4.707,-20.538],[-4.630,-3.774,-20.727],[-3.597,-3.616,-20.630],[-5.953,-1.824,-21.728],[-6.703,-6.105,-22.104],[-7.701,-7.139,-21.858],[-7.690,-7.581,-20.400],[-8.704,-8.036,-19.871],[-7.304,-8.279,-22.811],[-5.945,-7.200,-23.228],[-6.536,-7.444,-19.755],[-6.364,-7.912,-18.385],[-6.555,-6.778,-17.386],[-7.423,-6.844,-16.516],[-4.974,-8.540,-18.173],[-4.565,-8.938,-18.299],[-5.759,-7.003,-20.225],[-5.739,-5.738,-17.517],[-5.712,-4.657,-16.539],[-6.654,-3.529,-16.938],[-6.991,-2.671,-16.122],[-4.305,-4.121,-16.342],[-3.485,-4.290,-15.709],[-5.121,-5.694,-18.315],[-7.076,-3.535,-18.197],[-7.955,-2.493,-18.716],[-7.255,-1.140,-18.731],[-7.821,-0.133,-18.305],[-7.955,-2.493,-18.716],[-6.782,-4.281,-18.811],[-6.022,-1.123,-19.224],[-5.223,0.097,-19.247],[-4.881,0.505,-20.674],[-5.178,-0.218,-21.625],[-3.919,-0.067,-18.444],[-3.595,0.124,-17.866],[-5.627,-1.976,-19.593],[-4.254,1.668,-20.817],[-3.719,2.097,-22.104],[-2.197,2.062,-22.106],[-1.549,2.748,-21.315],[-4.222,3.491,-22.448],[-4.221,3.490,-22.448],[-4.146,2.271,-20.014],[-1.629,1.260,-23.001],[-0.192,1.018,-23.010],[0.414,1.349,-24.368],[-0.261,1.278,-25.394],[0.097,-0.424,-22.641],[0.031,-0.963,-22.610],[-2.209,0.807,-23.693],[1.692,1.713,-24.367],[2.371,2.131,-25.588],[3.625,1.301,-25.832],[4.338,0.944,-24.894],[2.724,3.622,-25.514],[2.110,4.874,-26.167],[2.207,1.699,-23.498],[3.889,0.996,-27.099],[5.137,0.351,-27.487],[5.715,0.982,-28.747],[5.014,1.154,-29.745],[4.914,-1.134,-27.695],[4.662,-1.596,-27.834],[3.207,1.218,-27.810],[6.997,1.327,-28.696],[7.627,2.094,-29.764],[7.702,1.286,-31.053],[7.766,1.848,-32.146],[9.034,2.534,-29.349],[9.983,3.869,-28.744],[7.549,1.050,-27.897],[7.692,-0.036,-30.918],[7.668,-0.924,-32.074],[6.242,-1.169,-32.552],[6.021,-1.853,-33.551],[8.354,-2.242,-31.744],[8.353,-2.241,-31.745],[7.701,-0.436,-29.991],[5.278,-0.605,-31.832],[3.873,-0.732,-32.201],[3.355,-2.137,-31.920],[2.381,-2.582,-32.527],[3.873,-0.732,-32.201],[5.524,-0.075,-31.009],[4.011,-2.831,-30.997],[3.709,-4.232,-30.732],[3.274,-4.439,-29.287],[3.403,-5.534,-28.740],[4.912,-5.104,-31.057],[4.911,-5.104,-31.057],[4.738,-2.375,-30.464],[2.760,-3.379,-28.672],[2.249,-3.458,-27.308],[1.002,-4.329,-27.236],[0.077,-4.173,-28.034],[1.922,-2.062,-26.746],[2.125,-1.585,-26.292],[2.721,-2.497,-29.162],[0.981,-5.247,-26.276],[-0.166,-6.124,-26.078],[-1.287,-5.407,-25.337],[-1.035,-4.541,-24.499],[0.217,-7.423,-25.386],[0.865,-9.794,-25.049],[1.782,-5.339,-25.667],[-2.525,-5.772,-25.651],[-3.679,-5.291,-24.901],[-3.706,-5.878,-23.496],[-3.476,-7.072,-23.307],[-4.967,-5.621,-25.641],[-4.967,-5.621,-25.640],[-2.671,-6.398,-26.430],[-3.987,-5.030,-22.511],[-4.038,-5.462,-21.120],[-5.102,-6.533,-20.914],[-5.020,-7.331,-19.980],[-4.303,-4.263,-20.202],[-3.396,-3.443,-19.265],[-4.170,-4.062,-22.733],[-6.100,-6.544,-21.790],[-7.223,-7.465,-21.660],[-7.010,-8.717,-22.501],[-7.787,-9.668,-22.423],[-8.529,-6.776,-22.064],[-9.970,-5.974,-21.635],[-6.080,-5.899,-22.567],[-5.952,-8.710,-23.305],[-5.704,-9.790,-24.253],[-4.638,-10.745,-23.732],[-4.013,-10.492,-22.703],[-5.285,-9.225,-25.611],[-5.787,-8.771,-27.616],[-5.304,-7.937,-23.259],[-4.435,-11.845,-24.449],[-3.454,-12.848,-24.053],[-2.384,-13.025,-25.123],[-2.683,-13.398,-26.258],[-4.104,-14.175,-23.691],[-5.093,-16.006,-22.340],[-4.974,-11.990,-25.291],[-1.136,-12.757,-24.755],[-0.021,-12.868,-25.687],[0.863,-14.061,-25.349],[1.105,-14.354,-24.178],[0.838,-11.590,-25.696],[1.008,-11.038,-26.072],[-0.955,-12.468,-23.804],[1.344,-14.746,-26.381],[2.244,-15.878,-26.196],[3.683,-15.497,-26.524],[3.981,-15.058,-27.634],[1.830,-17.077,-27.068],[1.445,-17.485,-27.233],[1.079,-14.476,-27.317],[4.571,-15.669,-25.551],[5.991,-15.409,-25.755],[6.792,-16.704,-25.765],[6.798,-17.449,-24.785],[6.557,-14.475,-24.669],[6.793,-13.838,-24.553],[4.254,-15.987,-24.646],[7.468,-16.967,-26.878],[8.306,-18.154,-27.003],[9.785,-17.787,-26.996],[10.256,-17.051,-27.863],[7.955,-18.909,-28.271],[7.802,-18.994,-28.786],[7.400,-16.328,-27.658],[10.512,-18.306,-26.012],[11.958,-18.127,-25.953],[12.688,-19.380,-26.418],[12.423,-20.480,-25.934],[12.426,-17.772,-24.529],[12.677,-17.263,-24.138],[10.052,-18.837,-25.287],[13.608,-19.207,-27.361],[14.272,-20.336,-28.000],[15.283,-20.984,-27.063],[15.949,-20.300,-26.284],[14.951,-19.887,-29.280],[15.220,-19.565,-29.626],[13.854,-18.268,-27.642],[15.394,-22.305,-27.141],[16.435,-23.031,-26.424],[17.370,-23.749,-27.388],[16.925,-24.374,-28.351],[15.814,-24.043,-25.457],[15.395,-24.340,-23.789],[14.739,-22.821,-27.713],[18.669,-23.656,-27.125],[19.165,-22.922,-25.966],[18.646,-21.490,-25.958],[18.405,-20.900,-27.012],[20.695,-22.982,-26.110],[20.327,-23.853,-27.624],[18.475,-20.935,-24.763],[17.974,-19.574,-24.615],[18.953,-18.560,-25.191],[18.575,-17.436,-25.522],[17.701,-19.274,-23.154],[17.762,-19.283,-22.613],[18.699,-21.469,-23.936],[20.214,-18.963,-25.308],[21.251,-18.090,-25.844],[21.411,-18.281,-27.347],[22.346,-17.758,-27.953],[22.577,-18.260,-25.117],[24.436,-17.882,-23.519],[20.460,-19.899,-25.019],[20.492,-19.034,-27.943],[20.515,-19.276,-29.381],[19.303,-20.085,-29.823],[18.516,-20.545,-28.995],[21.795,-19.974,-29.805],[22.750,-19.713,-30.153],[19.759,-19.449,-27.386],[19.157,-20.255,-31.132],[18.135,-21.139,-31.681],[18.761,-22.338,-32.380],[18.061,-23.153,-32.982],[17.170,-20.401,-32.597],[15.161,-19.176,-33.382],[19.770,-19.760,-31.764],[20.083,-22.441,-32.298],[20.807,-23.538,-32.930],[20.682,-24.820,-32.117],[21.308,-24.964,-31.067],[22.281,-23.172,-33.112],[23.850,-22.567,-34.396],[20.600,-21.742,-31.784],[19.871,-25.750,-32.610],[19.675,-27.030,-31.938],[20.467,-28.137,-32.622],[20.047,-28.670,-33.649],[18.205,-27.401,-31.870],[17.400,-27.288,-31.206],[19.377,-25.566,-33.471],[21.614,-28.479,-32.046],[22.621,-29.264,-32.750],[22.544,-30.735,-32.362],[22.162,-31.072,-31.242],[24.022,-28.719,-32.463],[25.250,-27.704,-33.193],[21.794,-28.188,-31.095],[22.908,-31.608,-33.295],[23.085,-33.023,-32.994],[24.520,-33.466,-33.248],[25.053,-33.280,-34.342],[22.119,-33.872,-33.822],[20.345,-35.021,-33.917],[23.067,-31.282,-34.238],[25.142,-34.052,-32.230],[26.535,-34.471,-32.322],[26.769,-35.777,-31.574],[26.486,-35.879,-30.381],[27.487,-33.395,-31.766],[27.959,-32.926,-31.945],[24.636,-34.212,-31.371],[27.286,-36.775,-32.283],[27.566,-38.074,-31.685],[29.003,-38.505,-31.950],[29.474,-38.465,-33.087],[26.602,-39.133,-32.227],[25.150,-40.039,-31.884],[27.491,-36.629,-33.261],[29.697,-38.916,-30.894],[31.016,-39.522,-31.032],[30.970,-41.014,-30.730],[30.681,-41.421,-29.605],[32.046,-38.852,-30.104],[32.599,-38.440,-30.095],[29.301,-38.805,-29.972],[31.258,-41.826,-31.742],[31.203,-43.276,-31.600],[32.598,-43.887,-31.634],[33.445,-43.479,-32.429],[30.333,-43.889,-32.699],[28.494,-44.761,-33.276],[31.523,-41.429,-32.632],[32.831,-44.867,-30.768],[34.116,-45.555,-30.716],[33.943,-47.058,-30.888],[33.299,-47.716,-30.071],[34.850,-45.280,-29.391],[35.518,-44.596,-28.866],[32.099,-45.143,-30.129],[34.522,-47.597,-31.956],[34.500,-49.035,-32.196],[35.820,-49.681,-31.793],[36.887,-49.270,-32.248],[34.210,-49.327,-33.670],[32.972,-49.797,-34.808],[34.990,-46.995,-32.618],[35.740,-50.694,-30.938],[36.931,-51.372,-30.440],[37.207,-52.648,-31.225],[36.286,-53.391,-31.563],[36.815,-51.682,-28.959],[37.072,-51.236,-28.044],[34.831,-51.002,-30.624],[38.480,-52.897,-31.511],[38.890,-54.132,-32.168],[38.507,-55.351,-31.338],[38.633,-55.344,-30.113],[40.414,-53.990,-32.318],[40.163,-52.447,-31.456],[38.039,-56.396,-32.011],[37.663,-57.634,-31.340],[38.854,-58.576,-31.214],[38.708,-59.724,-30.795],[36.526,-58.358,-32.084],[35.982,-58.377,-32.298],[37.941,-56.331,-33.014],[40.032,-58.084,-31.580],[41.260,-58.859,-31.449],[42.484,-57.952,-31.423],[42.556,-56.970,-32.161],[41.371,-59.871,-32.581],[41.371,-59.870,-32.580],[40.079,-57.149,-31.958],[43.444,-58.288,-30.568],[44.752,-57.644,-30.594],[45.836,-58.616,-31.041],[45.978,-59.703,-30.482],[44.753,-57.644,-30.594],[43.264,-59.008,-29.883],[46.600,-58.217,-32.053],[47.627,-59.081,-32.624],[48.951,-58.341,-32.767],[48.983,-57.112,-32.827],[47.204,-59.628,-34.000],[46.841,-59.930,-34.343],[46.466,-57.293,-32.436],[50.042,-59.097,-32.822],[51.360,-58.523,-33.064],[51.397,-57.762,-34.382],[52.099,-56.759,-34.512],[52.423,-59.612,-33.047],[52.423,-59.611,-33.047],[49.956,-60.095,-32.694],[50.637,-58.244,-35.359],[50.635,-57.653,-36.692],[49.509,-56.638,-36.843],[49.416,-55.946,-37.857],[50.533,-58.715,-37.771],[51.178,-59.287,-38.370],[50.045,-59.041,-35.174],[48.655,-56.554,-35.829],[47.594,-55.555,-35.801],[46.464,-55.925,-36.755],[45.581,-55.113,-37.030],[47.593,-55.555,-35.801],[48.743,-57.200,-35.057],[46.499,-57.155,-37.256],[45.573,-57.584,-38.297],[44.615,-58.648,-37.777],[43.822,-59.207,-38.535],[46.340,-58.104,-39.497],[46.733,-58.351,-39.780],[47.184,-57.809,-36.907],[44.694,-58.926,-36.480],[43.762,-59.843,-35.835],[42.336,-59.311,-35.893],[42.072,-58.173,-35.504],[43.762,-59.843,-35.835],[45.418,-58.490,-35.927],[41.419,-60.140,-36.380],[40.034,-59.727,-36.566],[39.079,-60.897,-36.368],[39.050,-61.830,-37.170],[39.837,-59.118,-37.957],[39.795,-58.210,-38.416],[41.690,-61.081,-36.628],[38.298,-60.841,-35.294],[37.509,-61.988,-34.860],[36.212,-62.095,-35.651],[35.485,-63.083,-35.539],[37.256,-61.727,-33.366],[38.144,-60.210,-33.677],[35.926,-61.074,-36.451],[34.670,-61.006,-37.188],[34.729,-61.848,-38.456],[35.432,-61.507,-39.407],[34.340,-59.565,-37.526],[34.419,-59.044,-37.662],[36.596,-60.325,-36.550],[33.987,-62.950,-38.463],[34.050,-63.909,-39.560],[32.655,-64.269,-40.057],[31.654,-63.921,-39.432],[34.784,-65.197,-39.143],[35.364,-65.557,-39.231],[33.363,-63.128,-37.689],[32.598,-64.967,-41.186],[31.328,-65.418,-41.744],[31.363,-66.907,-42.061],[32.346,-67.413,-42.602],[30.965,-64.640,-43.022],[30.846,-64.142,-43.305],[33.455,-65.192,-41.670],[30.285,-67.605,-41.720],[30.121,-69.000,-42.110],[29.093,-69.143,-43.226],[28.046,-68.497,-43.204],[29.783,-69.892,-40.925],[30.057,-71.461,-39.023],[29.561,-67.157,-41.177],[29.399,-69.993,-44.200],[28.459,-70.303,-45.270],[28.244,-71.806,-45.396],[29.200,-72.580,-45.408],[28.958,-69.739,-46.603],[28.786,-68.429,-47.744],[30.307,-70.435,-44.200],[26.982,-72.212,-45.490],[26.643,-73.612,-45.712],[25.756,-73.775,-46.940],[24.878,-72.952,-47.198],[25.962,-74.195,-44.482],[25.962,-74.194,-44.483],[26.239,-71.533,-45.404],[25.991,-74.843,-47.696],[25.170,-75.153,-48.860],[24.171,-76.261,-48.550],[24.392,-77.077,-47.656],[26.051,-75.557,-50.044],[26.722,-74.886,-51.516],[26.758,-75.455,-47.457],[23.071,-76.283,-49.295],[22.061,-77.324,-49.138],[21.336,-77.589,-50.451],[21.164,-76.686,-51.270],[21.070,-76.940,-48.049],[21.070,-76.941,-48.050],[22.930,-75.561,-49.987],[20.913,-78.834,-50.646],[20.148,-79.206,-51.830],[18.658,-79.280,-51.523],[18.246,-79.913,-50.550],[20.637,-80.546,-52.386],[21.254,-80.918,-53.106],[21.126,-79.540,-49.956],[17.853,-78.630,-52.357],[16.430,-78.472,-52.082],[15.585,-78.995,-53.236],[16.031,-79.020,-54.383],[16.066,-76.999,-51.818],[15.875,-76.554,-51.328],[18.238,-78.236,-53.204],[14.362,-79.411,-52.925],[13.358,-79.673,-53.950],[12.024,-79.033,-53.590],[11.508,-79.226,-52.490],[13.150,-81.183,-54.165],[13.348,-81.715,-54.305],[14.121,-79.550,-51.954],[11.469,-78.269,-54.525],[10.223,-77.549,-54.287],[9.266,-77.700,-55.462],[9.659,-77.546,-56.619],[10.504,-76.068,-54.023],[10.651,-75.090,-52.779],[11.921,-78.184,-55.424],[8.008,-78.002,-55.159],[6.978,-78.112,-56.186],[5.887,-77.068,-55.985],[5.301,-76.968,-54.907],[6.383,-79.506,-56.180],[6.204,-79.981,-55.986],[7.759,-78.159,-54.193],[5.618,-76.292,-57.029],[4.509,-75.345,-57.015],[3.371,-75.817,-57.911],[3.603,-76.363,-58.990],[4.985,-73.959,-57.454],[5.428,-72.587,-56.784],[6.197,-76.360,-57.855],[2.141,-75.602,-57.458],[0.964,-76.051,-58.193],[-0.100,-74.963,-58.248],[-0.310,-74.238,-57.276],[0.356,-77.319,-57.565],[0.393,-77.877,-57.396],[2.017,-75.115,-56.582],[-0.770,-74.855,-59.390],[-1.790,-73.831,-59.586],[-3.168,-74.455,-59.767],[-3.994,-73.948,-60.527],[-1.451,-72.963,-60.800],[-0.778,-71.435,-61.310],[-0.568,-75.498,-60.142],[-3.410,-75.556,-59.066],[-4.706,-76.224,-59.111],[-5.504,-75.965,-57.840],[-4.938,-75.842,-56.754],[-4.525,-77.729,-59.320],[-4.597,-78.932,-60.592],[-2.679,-75.942,-58.486],[-6.823,-75.884,-57.982],[-7.716,-75.845,-56.830],[-7.788,-77.203,-56.143],[-7.303,-78.203,-56.672],[-9.100,-75.396,-57.258],[-9.541,-75.338,-57.570],[-7.216,-75.847,-58.911],[-8.395,-77.231,-54.962],[-8.500,-78.460,-54.184],[-9.048,-79.602,-55.028],[-8.395,-80.632,-55.196],[-9.399,-78.271,-52.948],[-9.530,-78.008,-52.443],[-8.795,-76.380,-54.594],[-10.252,-79.414,-55.559],[-10.935,-80.467,-56.301],[-10.210,-80.783,-57.603],[-10.173,-81.933,-58.041],[-12.384,-80.067,-56.590],[-13.324,-80.207,-56.224],[-10.705,-78.519,-55.446],[-9.634,-79.756,-58.218],[-8.834,-79.935,-59.424],[-7.613,-80.803,-59.150],[-7.245,-81.649,-59.966],[-8.400,-78.579,-59.985],[-8.614,-77.303,-61.094],[-9.754,-78.827,-57.841],[-6.988,-80.590,-57.998],[-5.783,-81.326,-57.632],[-6.103,-82.778,-57.303],[-5.265,-83.663,-57.476],[-5.087,-80.658,-56.444],[-3.872,-79.634,-55.829],[-7.356,-79.900,-57.358],[-7.320,-83.017,-56.826],[-7.793,-84.373,-56.576],[-7.768,-85.209,-57.850],[-7.516,-86.413,-57.809],[-9.168,-84.392,-55.925],[-10.933,-84.491,-54.185],[-7.934,-82.239,-56.632],[-8.030,-84.562,-58.981],[-7.961,-85.227,-60.277],[-6.557,-85.746,-60.556],[-6.383,-86.863,-61.043],[-8.410,-84.281,-61.381],[-8.409,-84.282,-61.381],[-8.284,-83.586,-58.941],[-5.557,-84.928,-60.244],[-4.163,-85.328,-60.400],[-3.835,-86.533,-59.526],[-3.163,-87.466,-59.966],[-3.232,-84.163,-60.061],[-2.408,-83.039,-60.825],[-5.767,-84.006,-59.890],[-4.314,-86.506,-58.287],[-4.076,-87.599,-57.351],[-4.659,-88.906,-57.871],[-3.986,-89.937,-57.880],[-4.677,-87.296,-55.965],[-4.516,-87.140,-55.313],[-4.856,-85.709,-57.986],[-5.914,-88.858,-58.304],[-6.612,-90.052,-58.765],[-5.995,-90.590,-60.049],[-5.885,-91.802,-60.236],[-8.108,-89.818,-58.921],[-10.535,-89.770,-58.412],[-6.397,-87.971,-58.315],[-5.594,-89.682,-60.932],[-4.940,-90.062,-62.179],[-3.583,-90.701,-61.917],[-3.203,-91.668,-62.577],[-4.755,-88.851,-63.112],[-4.968,-88.407,-63.427],[-5.745,-88.703,-60.735],[-2.854,-90.154,-60.949],[-1.556,-90.698,-60.567],[-1.695,-92.100,-59.989],[-0.943,-93.007,-60.347],[-0.867,-89.778,-59.557],[0.265,-88.553,-59.208],[-3.209,-89.342,-60.466],[-2.661,-92.273,-59.093],[-2.872,-93.555,-58.432],[-3.355,-94.610,-59.418],[-2.962,-95.774,-59.339],[-3.875,-93.399,-57.282],[-3.711,-93.341,-55.751],[-3.264,-91.496,-58.865],[-4.211,-94.197,-60.346],[-4.701,-95.092,-61.389],[-3.564,-95.572,-62.282],[-3.489,-96.751,-62.628],[-5.775,-94.401,-62.217],[-5.774,-94.402,-62.217],[-4.531,-93.239,-60.330],[-2.680,-94.651,-62.652],[-1.484,-94.999,-63.409],[-0.598,-95.961,-62.629],[-0.083,-96.933,-63.181],[-0.710,-93.743,-63.782],[-0.710,-93.744,-63.782],[-2.841,-93.686,-62.402],[-0.424,-95.684,-61.341],[0.376,-96.542,-60.474],[-0.155,-97.970,-60.471],[0.616,-98.928,-60.525],[0.400,-95.978,-59.048],[1.471,-95.219,-58.242],[-0.857,-94.858,-60.952],[-1.475,-98.105,-60.408],[-2.105,-99.412,-60.264],[-2.358,-100.054,-61.622],[-2.964,-101.122,-61.711],[-3.418,-99.283,-59.482],[-3.809,-99.627,-58.032],[-2.057,-97.281,-60.461],[-1.890,-99.397,-62.678],[-1.918,-99.977,-64.015],[-0.585,-100.626,-64.363],[-0.458,-101.296,-65.388],[-2.280,-98.916,-65.045],[-2.279,-98.917,-65.045],[-1.505,-98.472,-62.551],[0.408,-100.424,-63.503],[1.759,-100.902,-63.766],[2.165,-101.983,-62.772],[2.150,-101.763,-61.561],[2.740,-99.747,-63.720],[2.964,-99.277,-63.563],[0.221,-99.926,-62.644],[2.528,-103.151,-63.291],[2.876,-104.289,-62.449],[4.033,-103.951,-61.517],[4.052,-104.369,-60.359],[3.242,-105.398,-63.448],[2.935,-104.135,-64.671],[4.996,-103.193,-62.029],[6.141,-102.768,-61.232],[5.719,-101.802,-60.133],[6.214,-101.873,-59.008],[7.202,-102.122,-62.132],[8.555,-102.620,-62.676],[4.934,-102.903,-62.994],[4.803,-100.899,-60.465],[4.295,-99.932,-59.500],[3.474,-100.616,-58.414],[3.554,-100.253,-57.240],[3.454,-98.864,-60.211],[3.733,-97.399,-60.596],[4.448,-100.883,-61.411],[2.685,-101.608,-58.813],[1.854,-102.351,-57.873],[2.706,-103.115,-56.868],[2.429,-103.103,-55.669],[0.924,-103.339,-58.600],[-0.037,-103.456,-59.102],[2.661,-101.854,-59.792],[3.744,-103.779,-57.364],[4.639,-104.551,-56.511],[5.218,-103.689,-55.397],[5.263,-104.102,-54.238],[5.769,-105.170,-57.338],[6.021,-106.048,-57.788],[3.918,-103.748,-58.359],[5.661,-102.488,-55.755],[6.203,-101.549,-54.780],[5.173,-101.213,-53.708],[5.464,-101.273,-52.514],[6.684,-100.283,-55.473],[6.683,-100.284,-55.473],[5.622,-102.219,-56.727],[3.969,-100.859,-54.143],[2.871,-100.588,-53.222],[2.703,-101.721,-52.218],[2.621,-101.487,-51.012],[1.543,-100.378,-53.973],[0.914,-99.651,-54.487],[3.810,-100.774,-55.137],[2.652,-102.949,-52.722],[2.248,-104.093,-51.914],[3.397,-104.584,-51.042],[3.268,-105.582,-50.333],[1.743,-105.230,-52.806],[0.871,-105.623,-53.156],[2.899,-103.094,-53.691],[4.520,-103.877,-51.098],[5.647,-104.158,-50.218],[5.311,-103.830,-48.769],[5.465,-104.668,-47.880],[6.880,-103.362,-50.655],[8.396,-103.452,-51.516],[4.594,-103.125,-51.768],[4.850,-102.605,-48.537],[4.551,-102.142,-47.187],[3.084,-101.753,-47.050],[2.616,-101.435,-45.957],[5.454,-100.958,-46.821],[6.697,-100.830,-45.920],[4.702,-101.979,-49.315],[2.364,-101.780,-48.166],[0.931,-101.512,-48.159],[0.170,-102.563,-48.958],[-0.471,-102.250,-49.961],[0.608,-100.105,-48.640],[0.083,-97.681,-48.602],[2.820,-101.992,-49.042],[0.244,-103.810,-48.507],[-0.145,-104.948,-49.332],[-1.614,-104.866,-49.724],[-1.985,-105.198,-50.850],[0.151,-106.171,-48.449],[0.624,-104.945,-47.240],[-2.448,-104.423,-48.789],[-3.887,-104.637,-48.882],[-4.496,-103.807,-50.005],[-5.473,-104.215,-50.631],[-4.557,-104.312,-47.555],[-4.557,-104.312,-47.556],[-2.074,-103.926,-47.993],[-3.912,-102.639,-50.254],[-4.382,-101.759,-51.317],[-3.460,-101.818,-52.528],[-3.549,-102.726,-53.307],[-4.493,-100.320,-50.811],[-5.694,-99.181,-50.236],[-3.122,-102.354,-49.692]]]
label=V(t.Tensor([38.69])).float()
# 画图
# plt.scatter(x.data.numpy(), y.data.numpy())
# plt.show()

import torch
import torch.nn.functional as F     # 激励函数都在这

class Net(torch.nn.Module):  # 继承 torch 的 Module
    def __init__(self, n_feature, n_hidden, n_output):
        super(Net, self).__init__()     # 继承 __init__ 功能
        # 定义每层用什么样的形式
        self.hidden = torch.nn.Linear(n_feature, n_hidden)   # 隐藏层线性输出
        self.predict = torch.nn.Linear(n_hidden, n_output)   # 输出层线性输出

    def forward(self, x):   # 这同时也是 Module 中的 forward 功能
        # 正向传播输入值, 神经网络分析出输出值
        x = F.relu(self.hidden(x))      # 激励函数(隐藏层的线性值)
        x = self.predict(x)             # 输出值
        return x

net = Net(n_feature=1, n_hidden=10, n_output=1)

print(net)  # net 的结构

# optimizer 是训练的工具
optimizer = torch.optim.Adam(net.parameters(), lr=0.01)  # 传入 net 的所有参数, 学习率
loss_func = torch.nn.MSELoss()      # 预测值和真实值的误差计算公式 (均方差)

# for t in range(100):
#     prediction = net(x)     # 喂给 net 训练数据 x, 输出预测值
#
#     loss = loss_func(prediction, y)     # 计算两者的误差
#     print(loss)
#
#     optimizer.zero_grad()   # 清空上一步的残余更新参数值
#     loss.backward()         # 误差反向传播, 计算参数更新值
#     optimizer.step()        # 将参数更新值施加到 net 的 parameters 上

import matplotlib.pyplot as plt

plt.ion()   # 画图
plt.show()

for t in range(200):

    prediction = net(x)  # 喂给 net 训练数据 x, 输出预测值

    loss = loss_func(prediction, y)  # 计算两者的误差
    # print(loss)

    optimizer.zero_grad()  # 清空上一步的残余更新参数值
    loss.backward()  # 误差反向传播, 计算参数更新值
    optimizer.step()  # 将参数更新值施加到 net 的 parameters 上

    # 接着上面来
    if t % 5 == 0:
        # plot and show learning process
        plt.cla()
        plt.scatter(x.data.numpy(), y.data.numpy())
        plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=5)
        plt.text(0.5, 0, 'Loss=%.4f' % loss.data.numpy(), fontdict={'size': 20, 'color':  'red'})
        plt.pause(0.2)

 

 

posted on 2019-10-25 17:27  黑暗尽头的超音速炬火  阅读(323)  评论(0)    收藏  举报