diff --git a/深度学习笔记/前馈神经网络/feedforward_neural_network.py b/深度学习笔记/前馈神经网络/feedforward_neural_network.py index 97a2c71..042c6f0 100755 --- a/深度学习笔记/前馈神经网络/feedforward_neural_network.py +++ b/深度学习笔记/前馈神经网络/feedforward_neural_network.py @@ -1,3 +1,4 @@ +import sys import numpy as np from keras.datasets import imdb @@ -13,16 +14,18 @@ def relu(z): ''' return np.maximum(0, z) -n0, m = X.shape -n1 = 20 -n2 = 7 -n3 = 5 -n4 = 1 -layers_dims = [n0, n1, n2, n3, n4] # [12288, 20, 7, 5, 1] -L = len(layers_dims) - 1 # 4层神经网络,不计输入层 +L = 0 ##### neural network model -def neural_network(X, Y, learning_rate=0.01, num_iterations=2000, lambd=0): +def neural_network(X, Y, learning_rate=0.01, num_iterations=8000, lambd=0): + n0, m = X.shape + n1 = 20 + n2 = 7 + n3 = 5 + n4 = 1 + layers_dims = [n0, n1, n2, n3, n4] # [12288, 20, 7, 5, 1] + L = len(layers_dims) - 1 # 4层神经网络,不计输入层 + m = X.shape[1] ### initialize forward propagation param_w = [i for i in range(L+1)] @@ -91,7 +94,13 @@ def neural_network(X, Y, learning_rate=0.01, num_iterations=2000, lambd=0): if i % 100 == 0: print("cost after iteration {}: {}".format(i, cost)) + parameters = {} + parameters["param_w"] = param_w + parameters["param_b"] = param_b + return parameters + def predict(X_new, parameters, threshold=0.5): + L = 4 param_w = parameters["param_w"] param_b = parameters["param_b"] @@ -115,12 +124,22 @@ def vectorize_sequences(sequences, dimension=10000): results[i, sequence] = 1. # 索引results矩阵中的位置,赋值为1,全部都是从第0行0列开始的 return results -(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000) +(train_data, train_labels), (test_data, test_labels) = imdb.load_data(path="imdb/imdb.npz",num_words=10000) # Our vectorized training data -x_train = vectorize_sequences(train_data) +x_train = vectorize_sequences(train_data)[:1000] # Our vectorized test data -x_test = vectorize_sequences(test_data) +x_test = vectorize_sequences(test_data)[:5] + +y_train = np.asarray(train_labels).astype('float32')[:1000] +y_test = np.asarray(test_labels).astype('float32')[:5] + +parameters = neural_network(x_train.T, y_train) +y_p = predict(x_test.T, parameters) +print(y_p) +print(y_test) +y_p2 = predict(x_train[:5].T, parameters) +print(y_p2) +print(y_train[:5]) -y_train = np.asarray(train_labels).astype('float32') -y_test = np.asarray(test_labels).astype('float32') \ No newline at end of file +sys.exit()