Je vais par exemple tensorflow de gouttelettes d'eau sur l'eau, le code:tensorflow animations en cours d'exécution de jupyter/ipython
#Import libraries for simulation
import tensorflow as tf
import numpy as np
#Imports for visualization
import PIL.Image
from io import BytesIO
from IPython.display import clear_output, Image, display
#A function for displaying the state of the pond's surface as an image.
def DisplayArray(a, fmt='jpeg', rng=[0,1]):
"""Display an array as a picture."""
a = (a - rng[0])/float(rng[1] - rng[0])*255
a = np.uint8(np.clip(a, 0, 255))
f = BytesIO()
PIL.Image.fromarray(a).save(f, fmt)
clear_output(wait = True)
display(Image(data=f.getvalue()))
sess = tf.InteractiveSession()
def make_kernel(a):
"""Transform a 2D array into a convolution kernel"""
a = np.asarray(a)
a = a.reshape(list(a.shape) + [1,1])
return tf.constant(a, dtype=1)
def simple_conv(x, k):
"""A simplified 2D convolution operation"""
x = tf.expand_dims(tf.expand_dims(x, 0), -1)
y = tf.nn.depthwise_conv2d(x, k, [1, 1, 1, 1], padding='SAME')
return y[0, :, :, 0]
def laplace(x):
"""Compute the 2D laplacian of an array"""
laplace_k = make_kernel([[0.5, 1.0, 0.5],
[1.0, -6., 1.0],
[0.5, 1.0, 0.5]])
return simple_conv(x, laplace_k)
N = 500
# Initial Conditions -- some rain drops hit a pond
# Set everything to zero
u_init = np.zeros([N, N], dtype=np.float32)
ut_init = np.zeros([N, N], dtype=np.float32)
# Some rain drops hit a pond at random points
for n in range(40):
a,b = np.random.randint(0, N, 2)
u_init[a,b] = np.random.uniform()
DisplayArray(u_init, rng=[-0.1, 0.1])
# Parameters:
# eps -- time resolution
# damping -- wave damping
eps = tf.placeholder(tf.float32, shape=())
damping = tf.placeholder(tf.float32, shape=())
# Create variables for simulation state
U = tf.Variable(u_init)
Ut = tf.Variable(ut_init)
# Discretized PDE update rules
U_ = U + eps * Ut
Ut_ = Ut + eps * (laplace(U) - damping * Ut)
# Operation to update the state
step = tf.group(
U.assign(U_),
Ut.assign(Ut_))
# Initialize state to initial conditions
tf.global_variables_initializer().run()
# Run 1000 steps of PDE
for i in range(1000):
# Step simulation
step.run({eps: 0.03, damping: 0.04})
DisplayArray(U.eval(), rng=[-0.1, 0.1])
Puis, à partir ipython je import partial_d
, mais il ne génère pas l'animation.
Quiconque a déjà utilisé tensorflow sait comment résoudre ce problème? Google mentionne Ipython Notebook
, n'a pas pu trouver/mettre en place, mais j'ai jupyter et Ipython dernier installé.
Je suis familier avec python, juste installé jupyter et j'ai couru le code mais n'ai pas pu comprendre comment exécuter un script à partir de là. Voici deux instantanés de ce https://drive.google.com/file/d/0B0nxIjitvEABMkQzZDktcUNyV3c/view?usp=sharing https://drive.google.com/file/d/0B0nxIjitvEABUmppc3JyREg1ZDg/view?usp=sharing –
Cliquez sur nouveau, nouveau cahier. Assurez-vous qu'il est correctement connecté à un noyau python (il devrait être), puis + une nouvelle cellule de code, copiez votre code et exécutez. Puis-je ** fortement ** vous suggérer de prendre quelques minutes pour regarder dans les ordinateurs portables jupyter. Ils sont super utiles quand il s'agit d'écrire python, en particulier avec des choses comme Tensorflow. Je l'utilise tout le temps pour mon développement TF. N'ouvrez pas le fichier .py car vous ne pouvez pas l'exécuter dans jupyter. Vous pouvez importer en utilisant la commande que vous avez mentionnée précédemment mais je la mettrais simplement dans une cellule dans un cahier frais. – JCooke
maintenant que j'ai compris comment l'utiliser ouais il suffit de le copier dans la cellule puis le fonctionnement fonctionne, comment importer du code? –