21.2_与float和int一起使用
21.2 与float和int一起使用
下面继续修改Variable,使其能与Python的int、float,以及np.float64、np.int64等类型一起使用。假设x是Variable实例,我们该怎么做才能让 这样的代码顺利执行呢?其中一种方法是在add函数中添加以下阴影部分的代码。
steps/step21.py def add(x0,x1): x1 $=$ as_array(x1) return Add() $(\mathbf{x}\theta ,\mathbf{x}1)$上面的代码使用了as_array函数。这是我们在步骤9中实现的函数。如果x1是int或float,使用这个函数就可以把它转换为ndarray实例。而ndarray实例(之后)则会在Function类中被转换为Variable实例。这样,我们就可以写出如下代码。
steps/step21.py
$\begin{array}{rl} & {\mathrm{x} = \mathrm{Variable}(\mathrm{np.array}(2.0))}\\ & {\mathrm{y} = \mathrm{x} + 3.0}\\ & {\mathrm{print}(\mathrm{y})} \end{array}$运行结果
variable(5.0)
上面的代码成功地将float和Variable实例相加并计算出结果。目前我们只修改了add函数,使用同样的做法还可以对mul等函数进行同样的修改。这样就能通过+和*将Variable实例与int、float结合起来计算了。不过当前实现仍存在两个问题。