【发布时间】:2018-06-19 09:02:58
【问题描述】:
我正在构建一个模型,它将数据分类为 7。
输入包括从 GIS 数据集中提取的 7 个波段。我正在获取一个波段的一个像素,然后使用监督分类方法训练我的神经网络。
有2个问题:
第一个是我的训练精度在每个时期都是相同的
第二个是每个epochs的训练和测试准确率也一样。
我尝试过更改各种模型、优化器和激活函数。
代码
from keras.layers import Dense,Input,Dropout
from keras.models import Model
from keras.models import load_model
from keras.optimizers import Adam
from sklearn.utils import shuffle
import numpy as np
from matplotlib import pyplot as plt
import scipy.io as sci
import time
mat=sci.loadmat('landsat/dataset_beta.mat')
X1=mat.get('x')
Y1=mat.get('y')
X1, Y1 = shuffle(X1, Y1)
m=int(85*X1.shape[0]/100)
bands=7
print(m)
X_train=X1[0:m,0:bands]
Y_train=Y1[0:m]
X_test=X1[m:X1.shape[0],0:bands]
Y_test=Y1[m:X1.shape[0]]
print('Total training examples: '+str(X_train.shape[0]))
print('Total test examples: '+str(X_test.shape[0]))
print('X_train dimensions: '+str(X_train.shape))
print('Y_train dimensions: '+str(Y_train.shape))
print('X_test dimensions: '+str(X_test.shape))
print('Y_test dimensions: '+str(Y_test.shape))
inp=Input(shape=(bands,))
layer=Dense(11,activation='sigmoid')(inp)
#layer=Dropout(0.2)(layer)
layer=Dense(22,activation='sigmoid')(layer)
layer=Dense(33,activation='sigmoid')(layer)
layer=Dense(44,activation='sigmoid')(layer)
layer=Dense(55,activation='sigmoid')(layer)
layer=Dense(66,activation='sigmoid')(layer)
layer=Dense(77,activation='sigmoid')(layer)
layer=Dense(88,activation='sigmoid')(layer)
layer=Dense(99,activation='sigmoid')(layer)
layer=Dense(110,activation='sigmoid')(layer)
layer=Dense(110,activation='sigmoid')(layer)
layer=Dense(99,activation='sigmoid')(layer)
layer=Dense(88,activation='sigmoid')(layer)
layer=Dense(77,activation='sigmoid')(layer)
layer=Dense(66,activation='sigmoid')(layer)
layer=Dense(55,activation='sigmoid')(layer)
layer=Dense(44,activation='sigmoid')(layer)
layer=Dense(33,activation='sigmoid')(layer)
layer=Dense(22,activation='sigmoid')(layer)
layer=Dense(11,activation='sigmoid')(layer)
layer=Dense(7,activation='softmax')(layer)
model=Model(inputs=inp,outputs=layer)
model.compile('RMSprop','binary_crossentropy',metrics=['accuracy'])
history=model.fit(X_train,Y_train,epochs=50,steps_per_epoch=20,validation_data=(X_test,Y_test),validation_steps=1)
【问题讨论】:
标签: python machine-learning neural-network keras deep-learning