2017-03-27 9 views
0

からアニメーションを実行している:Tensorflow私は、水の水滴のtensorflow例を経コードだ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]) 

その後Ipython I import partial_dからではなく、それはアニメーションを生成しません。今まで使用しています

enter image description here

誰もがこの問題を解決する方法を知っているtensorflow? Googleは/見つけることを設定することができませんでした、Ipython Notebook言及私はjupyterとインストールされている最新のIpythonを持っています。

答えて

1

はあなたが前にjupyter使用したことがありますか?ノートブックサーバーを起動し、そこからコードを実行する必要があると思います。 jupyter notebookを実行してから、コードをノートブックにインポートしてみてください。あるいは、コードをコピーしてコードセルに貼り付け、インポートをスキップすることもできます。

私はあなたが参照している例をよく知らないが、私はそれがTFの問題だとは思いません。 jupyter(iPythonが混乱を解消するための新しい名前)を使ってどのように動作するかを見てください。

+0

私はpythonに精通しています。ちょうどjupyterをインストールしました。コードを実行しましたが、そこからスクリプトを実行する方法を理解できませんでした。この2つのスナップショットは、https://drive.google.com/file/d/0B0nxIjitvEABMkQzZDktcUNyV3c/view?usp=sharing https://drive.google.com/file/d/0B0nxIjitvEABUmppc3JyREg1ZDg/view?usp=sharing –

+0

をクリックすると表示されます。新しい、新しいノートブック。それがpythonカーネルに正しく接続されていることを確認してください。新しいコードセルを作成し、コードをコピーして実行してください。 **私はあなたがジュピターノートを調べるのに数分かかることを強く**示唆してもいいですか?彼らは、特にTensorflowのようなものを使って、Pythonを書くのに役立ちます。 TFの開発にはいつも使っています。 jupyterで実行できないので、.pyファイルは開かないでください。前述のコマンドを使用してインポートできますが、新しいノートブックのセルに挿入するだけです。 – JCooke

+0

今、私はそれを使用してセルにコピーして動作させる方法を考え出しました。どのようにコードをインポートしますか? –

0

Thisは波紋のアニメーションを生成するjupyterとtensorflowの使用方法に高速化するために私になりました。