【问题标题】:Tensorflow + Matplotlib animationTensorFlow + Matplotlib 动画
【发布时间】:2016-07-22 10:01:44
【问题描述】:

我正在尝试使用 tensorflow 实现生命游戏,并使用 matplotlib.animation 来描绘动画。虽然图像被显示,但由于某种原因它没有动画。以下是我正在使用的代码:

参考:http://learningtensorflow.com/lesson8/

IDE:Pycharm 社区版

我在 FuncAnimation 中传递 blit=False,因为它在 blit=True 的 Mac 上不起作用

shape = (50, 50)
initial_board = tf.random_uniform(shape, minval=0, maxval=2, dtype=tf.int32)
board = tf.placeholder(tf.int32, shape=shape, name='board')

def update_board(X):
# Check out the details at: https://jakevdp.github.io/blog/2013/08/07/conways-game-of-life/
# Compute number of neighbours,
N = convolve2d(X, np.ones((3, 3)), mode='same', boundary='wrap') - X
# Apply rules of the game
X = (N == 3) | (X & (N == 2))
return X

board_update = tf.py_func(update_board, [board], [tf.int32])
fig = plt.figure()

if __name__ == '__main__':
with tf.Session() as sess:
    initial_board_values = sess.run(initial_board)
    X = sess.run(board_update, feed_dict={board: initial_board_values})[0]

    def game_of_life(*args):
        A = sess.run(board_update, feed_dict={board: X})[0]
        plot.set_array(A)
        return plot,

    ani = animation.FuncAnimation(fig, game_of_life, interval=100, blit=False)

    plot = plt.imshow(X, cmap='Greys', interpolation='nearest')
    plt.show()

【问题讨论】:

    标签: python animation matplotlib tensorflow conways-game-of-life


    【解决方案1】:

    当您显示图像时,您显示的是静态图像而不是动画。您需要删除此行,如教程中所述:

    plot = plt.imshow(X, cmap='Greys', interpolation='nearest')
    

    Hint: you will need to remove the plt.show() from the earlier code to make this run!

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2021-02-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 2016-03-16
      • 2021-03-17
      • 2021-10-25
      • 2013-08-03
      相关资源
      最近更新 更多