环境信息
- Window 10
- Anaconda3(64-bit)
安装目的
安装Keras,并使用Tensorflow作为其后端。也就是说执行完安装后,Keras和Tensorflow都是可以使用的
安装过程
-
以管理员身份运行Anaconda Prompt。
-
在默认的base环境中执行安装命令:
conda install theano # keras可以使用theano作为其后端 conda install tensorflow conda install keras
安装验证
- 启动Anaconda Navigator
- 在Home中Launch Spyder(要确认当前Environment为base,有多个虚拟环境时,每个虚拟环境下的Spyder分别是独立安装的)
- 验证Keras的安装(如下代码来自https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py)。
- 代码:
上述过程会下载minist数据集,下载失败的话,可以手工下载并将其保存为C:\Users\wht.keras\datasets\mnist.npzfrom __future__ import print_function import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop batch_size = 128 num_classes = 10 epochs = 20 # the data, split between train and test sets (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = x_train.reshape(60000, 784) x_test = x_test.reshape(10000, 784) x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 print(x_train.shape[0], 'train samples') print(x_test.shape[0], 'test samples') # convert class vectors to binary class matrices y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) model = Sequential() model.add(Dense(512, activation='relu', input_shape=(784,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(num_classes, activation='softmax')) model.summary() model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(x_test, y_test)) score = model.evaluate(x_test, y_test, verbose=0) print('Test loss:', score[0]) print('Test accuracy:', score[1])
- 结果查看:
- 验证Tensorflow的安装。
- 代码:
from __future__ import print_function import tensorflow as tf x = tf.random.normal([2,784]) w1 = tf.Variable(tf.random.truncated_normal([784, 256], stddev=0.1)) b1 = tf.Variable(tf.zeros([256])) o1 = tf.matmul(x,w1) + b1 # 线性变换 o1 = tf.nn.relu(o1) # 激活函数 print('w1:', w1) print('b1:', b1) print('o1:', o1)
- 结果查看: