from keras.models import Sequential
from keras.layers import Dense,Dropout,Flatten
from keras.layers import LocallyConnected1D,Conv1D
from keras.optimizers import SGD,Adam,Adagrad,RMSprop,Adadelta,Adamax
from numpy import *
import numpy as np
import keras
import matplotlib.pyplot as plt
%matplotlib inline
na=111
nb=1
nc=520
nd=850
#訓練集
t=0
dataa=np.zeros((na,nc,3))
for filename in ['A0F01.dat','A0F02.dat','A0F03.dat','A0F04.dat','A0F05.dat','A0F06.dat','A0F07.dat','A0F08.dat','A0F09.dat','A0F010.dat',
'A0F011.dat','A0F012.dat','A0F013.dat','A0F014.dat','A0F015.dat','A0F016.dat','A0F017.dat','A0F018.dat','A0F019.dat','A0F020.dat',
'A0F021.dat','A0F022.dat','A0F023.dat','A0F024.dat','A0F025.dat','A0F026.dat','A0F027.dat','A0F028.dat','A0F029.dat','A0F030.dat',
'A0F031.dat','A0F032.dat','A0F033.dat','A0F034.dat','A0F035.dat','A0F036.dat','A0F037.dat','A0F038.dat','A0F039.dat','A0F040.dat',
'A0F041.dat','A0F042.dat','A0F043.dat','A0F044.dat','A0F045.dat','A0F046.dat','A0F047.dat','A0F048.dat','A0F049.dat','A0F050.dat',
'A0F051.dat','A0F052.dat','A0F053.dat','A0F054.dat','A0F055.dat','A0F056.dat','A0F057.dat','A0F058.dat','A0F059.dat','A0F060.dat',
'A0F061.dat','A0F062.dat','A0F063.dat','A0F064.dat','A0F065.dat','A0F066.dat','A0F067.dat','A0F068.dat','A0F069.dat','A0F070.dat',
'A0F071.dat','A0F072.dat','A0F073.dat','A0F074.dat','A0F075.dat','A0F076.dat','A0F077.dat','A0F078.dat','A0F079.dat','A0F080.dat',
'A0F081.dat','A0F082.dat','A0F083.dat','A0F084.dat','A0F085.dat','A0F086.dat','A0F087.dat','A0F088.dat','A0F089.dat','A0F090.dat',
'A0F091.dat','A0F092.dat','A0F093.dat','A0F094.dat','A0F095.dat','A0F096.dat','A0F097.dat','A0F098.dat','A0F099.dat','A0F0100.dat',
'A0F0101.dat','A0F0102.dat','A0F0103.dat','A0F0104.dat','A0F0105.dat','A0F0106.dat','A0F0107.dat','A0F0108.dat','A0F0109.dat','A0F0110.dat','A0F0111.dat']:
myfile=open(filename,'r')
data=https://bbs.csdn.net/topics/[]
for eachline in myfile:
fileds=eachline.split()
row_data=https://bbs.csdn.net/topics/[float(x) for x in fileds]
data.append(row_data)
dataa[t,:,:]=data
t=t+1
myfile.close()
dataa=np.array(dataa)
#測驗集
t=0
datab=np.zeros((nb,nd,3))
for filename in ['OKLAHOMAA0F0.dat']:
myfile=open(filename,'r')
data=https://bbs.csdn.net/topics/[]
for eachline in myfile:
fileds=eachline.split()
row_data=https://bbs.csdn.net/topics/[float(x) for x in fileds]
data.append(row_data)
datab[t,:,:]=data
t=t+1
myfile.close()
datab=np.array(datab)
#######################################################
#設計視窗,對原測井曲線進行截斷,并轉化成電阻率
#x_trainb,x_testb
window_length=11
nm=0
x_trainb=np.zeros((na*nc,window_length))
#yy_train_label=np.zeros((na*nc,window_length))
for ii in range(na):
for jj in range(nc):
for kk in range(window_length):
if (jj-int(window_length/2)+kk)<0:
x_trainb[nm,kk]=1/dataa[ii,0,1]
#yy_train_label[nm,kk]=1/dataa[ii,0,2]
elif (jj-int(window_length/2)+kk)>nc-1:
x_trainb[nm,kk]=1/dataa[ii,nc-1,1] #1/
#yy_train_label[nm,kk]=1/dataa[ii,nc-1,2] #1
else:
x_trainb[nm,kk]=1/dataa[ii, jj-int(window_length/2)+kk,1] #1/
#yy_train_label[nm,kk]=1/dataa[ii, jj-int(window_length/2)+kk,2] #1/
nm=nm+1
nm=0
x_testb=np.zeros((nb*nd,window_length))
for ii in range(nb):
for jj in range(nd):
for kk in range(window_length):
if (jj-int(window_length/2)+kk)<0:
x_testb[nm,kk]=1/datab[ii,0,1] #1/
elif (jj-int(window_length/2)+kk)>nd-1:
x_testb[nm,kk]=1/datab[ii,nd-1,1] #1/
else:
x_testb[nm,kk]=1/datab[ii, jj-int(window_length/2)+kk,1] #
nm=nm+1
#######################################################
#設計標簽,識別所有比例的電阻性上凸起:1,電阻性下凸起:2,電導性凸起:0
ytrain_label=[]
label=[]
for ii in range(na):
temper=dataa[ii,0,2]
for jj in range(nc):
if int(temper/dataa[ii,jj,2])<203 and int(temper/dataa[ii,jj,2])>1.1 and x_trainb[jj+nc*ii,int(window_length/2)-1]<=x_trainb[jj+nc*ii,int(window_length/2)]:
#x_trainb[jj+na*ii,int(window_length/2)-1]<=x_trainb[jj+na*ii,int(window_length/2)+1]:
#上升凸起
tempera=jj+ii*nc
temperb=1
label.append(tempera)
ytrain_label.append(temperb)
elif int(temper/dataa[ii,jj,2])<203 and int(temper/dataa[ii,jj,2])>1.1 and x_trainb[jj+nc*ii,int(window_length/2)-1]>x_trainb[jj+nc*ii,int(window_length/2)]:
#x_trainb[jj+na*ii,int(window_length/2)-1]>x_trainb[jj+na*ii,int(window_length/2)+1]:
#下降凸起
tempera=jj+ii*nc
temperb=2
label.append(tempera)
ytrain_label.append(temperb)
else:
tempera=jj+ii*nc
temperb=0
label.append(tempera)
ytrain_label.append(temperb)
ytrain_label=np.array(ytrain_label)
#plt.subplot(111)
#plt.plot(ytrain_label[34500:35000],'-')
xfilt=window_length
from scipy.stats import norm
x = np.linspace(-1,1,xfilt)
xnorm = norm.pdf(x, loc=0, scale=10)
xnorm=xnorm/sum(xnorm)
#sum(xnorm)
plt.subplot(111)
plt.plot(xnorm,'.')
#計算背景值,用于確定測井曲線的倍數
xtrain_backa=np.zeros(na*nc)
for ii in range(na*nc):
tempera=np.zeros(xfilt)
for jj in range(xfilt):
tempera[jj]=xnorm[jj]*x_trainb[ii,int(window_length/2)-int(xfilt/2)+jj]
xtrain_backa[ii]=sum(tempera)
xtest_backa=np.zeros(nb*nd)
for ii in range(nb*nd):
tempera=np.zeros(xfilt)
for jj in range(xfilt):
tempera[jj]=xnorm[jj]*x_testb[ii,int(window_length/2)-int(xfilt/2)+jj]
xtest_backa[ii]=sum(tempera)
#計算曲線倍數
x_traina=np.zeros((na*nc,xfilt))
for ii in range(na*nc):
for jj in range(xfilt):
x_traina[ii,jj]=x_trainb[ii,jj]/xtrain_backa[ii]
x_testa=np.zeros((nb*nd,xfilt))
for ii in range(nb*nd):
for jj in range(xfilt):
x_testa[ii,jj]=x_testb[ii,jj]/xtest_backa[ii]
#######################################################
shape(x_traina),shape(x_testa),shape(ytrain_label)
uj5u.com熱心網友回復:
每一行都注釋。。。等一個樂于奉獻的大佬
uj5u.com熱心網友回復:
每一行!!!大佬 請出現,這實作的功能是啥都不知道,估計要我自己寫的代碼,都得寫兩天,
for ii in range(nb*nd): 這個能明白,從0,到nb*nd-1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55718.html
