课程中的使用的tf.nn的库函数,可是为什么我直接使用老师定义的函数运行,无法运行

来源:4-18 激活函数(下)

Thomas_wade

2018-04-10

报错为: raise RuntimeError('The Session graph is empty.  Add operations to the '

RuntimeError: The Session graph is empty.  Add operations to the graph before calling run().

它说图为空,这是为什么

代码为:

import numpy as np

import matplotlib.pyplot as plt

import tensorflow as tf


x=np.linspace(-7,7,180)


def sigmoid(inputs):

    y=[1/float(1+np.exp(-x)) for x in inputs]

    return y




def relu(inputs):

    y=[x*(x>0) for x in inputs]

    return y


def tanh(inputs):

    y=[(np.exp(x)-np.exp(-x))/float(np.exp(x)+np.exp(-x)) for

       x in inputs]

    return y


def softplus(inputs):

    y=[np.log(1+np.exp(x)) for x in inputs]

    return y


y_sigmoid=sigmoid(x)

y_relu=relu(x)

y_tanh=tanh(x)

y_softplus=softplus(x)


sess=tf.Session()


m1,m2,m3,m4=sess.run([y_sigmoid,y_relu,y_tanh,y_softplus])

plt.subplot(221)

plt.plot(x,m1,c="red",label="sigomid")

plt.ylim(-0.2,1.2)

plt.legend(loc="best")


plt.subplot(222)

plt.plot(x,m2,c="green",label="relu")

plt.ylim(-1,6)

plt.legend(loc="best")


plt.subplot(223)

plt.plot(x,m3,c="red",label="tanh")

plt.ylim(-1.3,1.3)

plt.legend(loc="best")


plt.subplot(224)

plt.plot(x,m4,c="red",label="soft")

plt.ylim(-1,6)

plt.legend(loc="best")


plt.show()


sess.close()


写回答

1回答

Oscar

2018-04-10

正确的代码是这样:

y_relu = tf.nn.relu(x)    
y_tanh = tf.nn.tanh(x)    
y_softplus = tf.nn.softplus(x)
y_sigmoid = tf.nn.sigmoid(x)

那四个自定义的函数,只是给大家看一下原理。

0
1
Thomas_wade
谢谢
2018-04-10
共1条回复

基于Python玩转人工智能最火框架 TensorFlow应用实践

机器学习入门,打牢TensorFlow框架应用是关键!

2214 学习 · 688 问题

查看课程