安装以下软件之前,请确保你已安装theano,及其python接口。
一、安装依赖库
1.安装graphviz软件
sudo apt-get install graphviz
2.安装graphviz的python接口
sudo pip install graphviz
3.安装pydot(注:此处需要指定安装1.1.0版本的pydot,否则回出现找不到find_graphviz函数的错误)
sudo pip install pydot
二、进行测试
from __future__ import print_function
import numpy
import theano
import theano.tensor as T
rng = numpy.random
# Training data
N = 400
feats = 784
D = (rng.randn(N, feats).astype(theano.config.floatX), rng.randint(
size=N, low=0, high=2).astype(theano.config.floatX))
training_steps = 10000
# Declare Theano symbolic variables
x = T.matrix("x")
y = T.vector("y")
w = theano.shared(rng.randn(feats).astype(theano.config.floatX), name="w")
b = theano.shared(numpy.asarray(0., dtype=theano.config.floatX), name="b")
x.tag.test_value = D[0]
y.tag.test_value = D[1]
# Construct Theano expression graph
p_1 = 1 / (1 + T.exp(-T.dot(x, w) - b)) # Probability of having a one
prediction = p_1 > 0.5 # The prediction that is done: 0 or 1
# Compute gradients
xent = -y * T.log(p_1) - (1 - y) * T.log(1 - p_1) # Cross-entropy
cost = xent.mean() + 0.01 * (w**2).sum() # The cost to optimize
gw, gb = T.grad(cost, [w, b])
# Training and prediction function
train = theano.function(inputs=[x, y], outputs=[prediction, xent], updates=[
[w, w - 0.01 * gw], [b, b - 0.01 * gb]], name="train")
predict = theano.function(inputs=[x], outputs=prediction, name="predict")
# theano.printing.pydotprint(
# prediction, outfile="logreg_pydotprint_prediction.png",
# var_with_name_simple=True)
theano.printing.pprint(prediction)
结果如下: