import numpy as np,pylab as pl
def sigmoid(x): return 1.0/(1+np.exp(-x))
def sigmoid_derivation(x): return x*(1.0-x)
X=np.array([[.11,.05,.95],[.09,.03,.08],[.01,.09,.91],
[.04,.92,.07],[.05,.02,.04],[.07,.97,.05],
[.06,.02,.98],[.02,.06,.03],[.01,.09,.03],
[.02,.94,.01],[.06,.03,.95],[.04,.91,.09]])
Y=np.array([[1,0,1,2,0,2,1,0,1,2,1,2]]).T
fig,ax=pl.subplots(nrows=2,ncols=1,figsize=(6.5,4))
ax[0].imshow(X.T,cmap=pl.cm.cool)
ax[0].text(-.3,1,str(Y.T)[2:-2],color='white',fontsize=32)
ax[0].set_title('Real Labels with One Error')
synapse0=np.random.randn(3,1); layer0=X
layer1=sigmoid(np.dot(layer0,synapse0))
layer1_delta=layer1_error*sigmoid_derivation(layer1)
synapse0_derivative=np.dot(layer0.T,layer1_delta)
synapse0-=synapse0_derivative
if (x>.7) and (x<.99): return 1
predict_Y=np.array([[labeling(layer1[i,0]) for i in range(12)]]).T
ax[1].imshow(X.T,cmap=pl.cm.cool)
ax[1].text(-.3,1,str(predict_Y.T)[2:-2],color='white',fontsize=32)
ax[1].set_title('Predicted Labels'); pl.show()
print(np.hstack((np.hstack((X,Y)),(layer1.round(3)),(predict_Y))))
No comments:
Post a Comment