注:Macbook pro 13' 没有NVIDIA的显卡,没办法CUDA编程,所以下面都是CPU编程。
2018.3.7更新:
建议大家直接安装anaconda,然后通过anaconda去安装tensorflow和keras。相关教程在tensorflow和keras的官网上都有,直接按步骤来就好。
1. 安装homebrew
homebrew是Mac端的一个软件包管理系统,通过它可以很方便地通过控制台命令安装程序。打开终端,输入(把下面的直接复制就行了):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 用homedrew安装python
用homedrew安装python只要一行命令,然后等着就好了:
brew install python
3. 安装pip
最终TensorFlow还是通过pip来安装的,所以先安装pip。pip的版本是根据python版本来的。
python2.7:
sudo easy_install pip
sudo easy_install --upgrade six
python3:
sudo easy_install pip3
sudo easy_install --upgrade six
4. 引入TensorFlow的正确版本的URL
这里要根据自己的python版本来选择对应的TensorFlow的包。
需要查看python版本的话,在终端输入:python,然后回车,就会有了。
Mac OS X, CPU only, Python 2.7:
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py2-none-any.whl
Mac OS X, CPU only, Python 3.4 or 3.5:
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc0-py3-none-any.whl
5. 用pip安装引入的TensorFlow
上面一步中把URL引入了,这一步用pip把该URL下的程序安装:
python2.7 / pip:
sudo pip install --upgrade $TF_BINARY_URL
python3 / pip3:
sudo pip3 install --upgrade $TF_BINARY_URL
6. 第一个TensorFlow小demo
安装完毕,测试一下,是不是可以使用啦:
python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
输出结果:Hello, TensorFlow!
a = tf.constant(10)
b = tf.constant(32)
sess.run(a+b)
输出结果:42
7. 安装keras
最后装上keras:
sudo pip install keras
8. 如何使用keras
先进入python模式:
python
然后使用keras,模型选择线性(Sequential)的啥的,自己可以定:
from keras.models import Sequential
model = Sequential()
构建网络各层,直接add就可以:
from keras.layers import Dense, Activation
model.add(Dense(output_dim=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(output_dim=10))
model.add(Activation("softmax"))
构建完毕,configure一下:
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
如果有需要,可以优化网络,如使用SGD(随机梯度下降法)
from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
下面就可以开始训练数据了,当然这些X_train, Y_train需要load进来哦:
model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)
然后测试数据,检查准确率,同样的X_test, Y_tes自己load进来:
loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32)
或者给个数据,预测下结果:
classes = model.predict_classes(X_test, batch_size=32)
proba = model.predict_proba(X_test, batch_size=32)