#%%
from sklearn.decomposition import PCA
import keras.backend as K
import numpy as np
from keras.layers import Dense, Activation, advanced_activations,Dropout
from keras.metrics import mean_absolute_error
from keras.models import Sequential
from keras.optimizers import Adam
from keras.losses import mean_squared_error
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import KFold,cross_val_score
from keras.layers import BatchNormalization
from keras import regularizers
import pylab as plt
%matplotlib inline
#%%
def keras_r2(y_true,y_pred):
y_mean=K.mean(y_true)
# ssreg=K.sum((y_pred-y_mean)**2)
sstotal=K.sum((y_true-y_mean)**2) # denominator
ssres=K.sum((y_true-y_pred)**2) # numerator
score = 1-(ssres/sstotal)
return score
#%%
def huber(y_true, y_pred):
return K.mean(K.square(y_pred - y_true), axis=-1)/2
#%%
def feature_normalize(feature):
ans = feature.copy()
for i in range(ans.shape[1]):
ans[:, i] -= ans[:, i].min()
q = ans[:, i].max()
if q:
ans[:, i] = ans[:, i] / q
return ans
#%%
def get_all_data(in_units):
data = np.load('featurn.npz')
X = data['X'][:, :in_units]
y = data['y']
X = feature_normalize(X).astype('float32')
y = y.astype('float32')
indeces=np.arange(X.shape[0])
np.random.shuffle(indeces)
return X[indeces], y[indeces]
#%%
def get_data(in_units,ratio):
X_, y_ = get_all_data(in_units)
M=int(ratio*X_.shape[0])
X_train=X_[:M,:]
y_train=y_[:M]
X_test=X_[M:,:]
y_test=y_[M:]
return (X_train,y_train),(X_test,y_test)
#%%
feature_num=24
(X_train,y_train),(X_test,y_test)=get_data(feature_num,0.8)
#%%
pca=PCA(2)
pca.fit(X_test,y_test)
dX1=pca.transform(X_test)
#%%
pivot=7.5
plt.scatter(dX1[y_test>pivot,0],dX1[y_test>pivot,1],c='b')
plt.scatter(dX1[y_test<pivot,0],dX1[y_test<pivot,1],c='r')
#%%
model=Sequential()
model.add(Dense(units=100,input_dim=feature_num,
# kernel_regularizer=regularizers.l2(0.01),
# activity_regularizer=regularizers.l1(0.01)
))
model.add(advanced_activations.ELU())
model.add(Dropout(0.08))
model.add(Dense(units=1))
model.add(advanced_activations.ELU())
model.compile(
loss=huber,
optimizer=Adam(),
metrics=[keras_r2,mean_absolute_error]
)
#%%
model.fit(X_train,y_train,epochs=2000,batch_size=1000)
model.evaluate(X_test,y_test)
#%%
#%%
X_test.shape
#%%
data,target=get_all_data(100)
#%%
estimator=MLPRegressor(hidden_layer_sizes=(300,300,300),max_iter=4000)
kf=KFold(n_splits=5,shuffle=True,random_state=10)
score=cross_val_score(estimator,data,target,cv=kf)
print(score)
print(score.mean())
#%%
神经网络中间层数据可视化
原创
©著作权归作者所有:来自51CTO博客作者wx61090d1892228的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:数据分析与数据可视化代码块
下一篇:meta learning
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
中间层
在类层次中增加一个虚拟函数(或一组函数),但不能改变基类,已知基类中有1个接口函数class
interface class c 派生类 -
可视化神经网络中间层输出 神经网络特征可视化
目录1 前言2 coding2.1 加载数据及模型2.2 微调及训练2.3 可视化特征图3 总结附录 1 前言使用torch实现。使用cifar10数据集代码中,有一点点迁移学习的内容中间层输出的特征图与原始图像进行对比,加深对神经网络理解。即从人为的可视化的角度,理解神经网络到底干了什么事。效果图:2 coding为了减少运行时间,这里直接使用resnet18的预训练模型。但是由于resnet
可视化神经网络中间层输出 torch输出特征图 神经网络特征图可视化 卷积层到底干了什么事 torch训练cifar数据集 -
mysqldump 跳过指定表后备份
Mysql数据库01-MySQL数据库初体验一、数据库的基本概念1、数据 描述事物的符号记录为数据(Data),包括数字、文字、图形、图像、声音、档案记录等,以“记录”形式统一的格式进行储存2、表 将不同的记录组织在一起,就形成了“表”,是用来存储具体数据
mysqldump 跳过指定表后备份 mysql跳过安全 mysql 数据库 MySQL