提交 68f41a42 编写于 作者: M minqiyang

Port current book code and doc to python3

上级 fb351603
...@@ -177,6 +177,80 @@ PaddlePaddle提供了读取数据者发生器机制来读取训练数据。读 ...@@ -177,6 +177,80 @@ PaddlePaddle提供了读取数据者发生器机制来读取训练数据。读
feed_order=['x', 'y'] feed_order=['x', 'y']
``` ```
以及一个绘画器来进行绘制:
```python
import six
import os
class PlotData(object):
def __init__(self):
self.step = []
self.value = []
def append(self, step, value):
self.step.append(step)
self.value.append(value)
def reset(self):
self.step = []
self.value = []
class Ploter(object):
def __init__(self, *args):
self.__args__ = args
self.__plot_data__ = {}
for title in args:
self.__plot_data__[title] = PlotData()
# demo in notebooks will use Ploter to plot figure, but when we convert
# the ipydb to py file for testing, the import of matplotlib will make the
# script crash. So we can use `export DISABLE_PLOT=True` to disable import
# these libs
self.__disable_plot__ = os.environ.get("DISABLE_PLOT")
if not self.__plot_is_disabled__():
import matplotlib.pyplot as plt
from IPython import display
self.plt = plt
self.display = display
def __plot_is_disabled__(self):
return self.__disable_plot__ == "True"
def append(self, title, step, value):
assert isinstance(title, six.string_types)
assert title in self.__plot_data__
data = self.__plot_data__[title]
assert isinstance(data, PlotData)
data.append(step, value)
def plot(self, path=None):
if self.__plot_is_disabled__():
return
titles = []
for title in self.__args__:
data = self.__plot_data__[title]
assert isinstance(data, PlotData)
if len(data.step) > 0:
titles.append(title)
self.plt.plot(data.step, data.value)
self.plt.legend(titles, loc='upper left')
if path is None:
self.display.clear_output(wait=True)
self.display.display(self.plt.gcf())
else:
self.plt.savefig(path)
self.plt.gcf().clear()
def reset(self):
for key in self.__plot_data__:
data = self.__plot_data__[key]
assert isinstance(data, PlotData)
data.reset()
```
除此之外,可以定义一个事件响应器来处理类似`打印训练进程`的事件: 除此之外,可以定义一个事件响应器来处理类似`打印训练进程`的事件:
```python ```python
...@@ -184,7 +258,6 @@ feed_order=['x', 'y'] ...@@ -184,7 +258,6 @@ feed_order=['x', 'y']
params_dirname = "fit_a_line.inference.model" params_dirname = "fit_a_line.inference.model"
# Plot data # Plot data
from paddle.v2.plot import Ploter
train_title = "Train cost" train_title = "Train cost"
test_title = "Test cost" test_title = "Test cost"
plot_cost = Ploter(train_title, test_title) plot_cost = Ploter(train_title, test_title)
...@@ -259,7 +332,7 @@ inferencer = fluid.contrib.inferencer.Inferencer( ...@@ -259,7 +332,7 @@ inferencer = fluid.contrib.inferencer.Inferencer(
batch_size = 10 batch_size = 10
test_reader = paddle.batch(paddle.dataset.uci_housing.test(),batch_size=batch_size) test_reader = paddle.batch(paddle.dataset.uci_housing.test(),batch_size=batch_size)
test_data = test_reader().next() test_data = next(test_reader())
test_x = numpy.array([data[0] for data in test_data]).astype("float32") test_x = numpy.array([data[0] for data in test_data]).astype("float32")
test_y = numpy.array([data[1] for data in test_data]).astype("float32") test_y = numpy.array([data[1] for data in test_data]).astype("float32")
......
...@@ -196,6 +196,80 @@ for loading the training data. A reader may return multiple columns, and we need ...@@ -196,6 +196,80 @@ for loading the training data. A reader may return multiple columns, and we need
feed_order=['x', 'y'] feed_order=['x', 'y']
``` ```
And a ploter to plot metrics:
```python
import six
import os
class PlotData(object):
def __init__(self):
self.step = []
self.value = []
def append(self, step, value):
self.step.append(step)
self.value.append(value)
def reset(self):
self.step = []
self.value = []
class Ploter(object):
def __init__(self, *args):
self.__args__ = args
self.__plot_data__ = {}
for title in args:
self.__plot_data__[title] = PlotData()
# demo in notebooks will use Ploter to plot figure, but when we convert
# the ipydb to py file for testing, the import of matplotlib will make the
# script crash. So we can use `export DISABLE_PLOT=True` to disable import
# these libs
self.__disable_plot__ = os.environ.get("DISABLE_PLOT")
if not self.__plot_is_disabled__():
import matplotlib.pyplot as plt
from IPython import display
self.plt = plt
self.display = display
def __plot_is_disabled__(self):
return self.__disable_plot__ == "True"
def append(self, title, step, value):
assert isinstance(title, six.string_types)
assert title in self.__plot_data__
data = self.__plot_data__[title]
assert isinstance(data, PlotData)
data.append(step, value)
def plot(self, path=None):
if self.__plot_is_disabled__():
return
titles = []
for title in self.__args__:
data = self.__plot_data__[title]
assert isinstance(data, PlotData)
if len(data.step) > 0:
titles.append(title)
self.plt.plot(data.step, data.value)
self.plt.legend(titles, loc='upper left')
if path is None:
self.display.clear_output(wait=True)
self.display.display(self.plt.gcf())
else:
self.plt.savefig(path)
self.plt.gcf().clear()
def reset(self):
for key in self.__plot_data__:
data = self.__plot_data__[key]
assert isinstance(data, PlotData)
data.reset()
```
Moreover, an event handler is provided to print the training progress: Moreover, an event handler is provided to print the training progress:
```python ```python
...@@ -203,7 +277,6 @@ Moreover, an event handler is provided to print the training progress: ...@@ -203,7 +277,6 @@ Moreover, an event handler is provided to print the training progress:
params_dirname = "fit_a_line.inference.model" params_dirname = "fit_a_line.inference.model"
# Plot data # Plot data
from paddle.v2.plot import Ploter
train_title = "Train cost" train_title = "Train cost"
test_title = "Test cost" test_title = "Test cost"
plot_cost = Ploter(train_title, test_title) plot_cost = Ploter(train_title, test_title)
...@@ -281,7 +354,7 @@ inferencer = fluid.contrib.inferencer.Inferencer( ...@@ -281,7 +354,7 @@ inferencer = fluid.contrib.inferencer.Inferencer(
batch_size = 10 batch_size = 10
test_reader = paddle.batch(paddle.dataset.uci_housing.test(),batch_size=batch_size) test_reader = paddle.batch(paddle.dataset.uci_housing.test(),batch_size=batch_size)
test_data = test_reader().next() test_data = next(test_reader())
test_x = numpy.array([data[0] for data in test_data]).astype("float32") test_x = numpy.array([data[0] for data in test_data]).astype("float32")
test_y = numpy.array([data[1] for data in test_data]).astype("float32") test_y = numpy.array([data[1] for data in test_data]).astype("float32")
......
01.fit_a_line/image/ranges.png

6.6 KB | W: | H:

01.fit_a_line/image/ranges.png

6.6 KB | W: | H:

01.fit_a_line/image/ranges.png
01.fit_a_line/image/ranges.png
01.fit_a_line/image/ranges.png
01.fit_a_line/image/ranges.png
  • 2-up
  • Swipe
  • Onion skin
# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import six
import os
class PlotData(object):
def __init__(self):
self.step = []
self.value = []
def append(self, step, value):
self.step.append(step)
self.value.append(value)
def reset(self):
self.step = []
self.value = []
class Ploter(object):
def __init__(self, *args):
self.__args__ = args
self.__plot_data__ = {}
for title in args:
self.__plot_data__[title] = PlotData()
# demo in notebooks will use Ploter to plot figure, but when we convert
# the ipydb to py file for testing, the import of matplotlib will make the
# script crash. So we can use `export DISABLE_PLOT=True` to disable import
# these libs
self.__disable_plot__ = os.environ.get("DISABLE_PLOT")
if not self.__plot_is_disabled__():
import matplotlib.pyplot as plt
from IPython import display
self.plt = plt
self.display = display
def __plot_is_disabled__(self):
return self.__disable_plot__ == "True"
def append(self, title, step, value):
assert isinstance(title, six.string_types)
assert title in self.__plot_data__
data = self.__plot_data__[title]
assert isinstance(data, PlotData)
data.append(step, value)
def plot(self, path=None):
if self.__plot_is_disabled__():
return
titles = []
for title in self.__args__:
data = self.__plot_data__[title]
assert isinstance(data, PlotData)
if len(data.step) > 0:
titles.append(title)
self.plt.plot(data.step, data.value)
self.plt.legend(titles, loc='upper left')
if path is None:
self.display.clear_output(wait=True)
self.display.display(self.plt.gcf())
else:
self.plt.savefig(path)
self.plt.gcf().clear()
def reset(self):
for key in self.__plot_data__:
data = self.__plot_data__[key]
assert isinstance(data, PlotData)
data.reset()
...@@ -70,7 +70,7 @@ feed_order = ['x', 'y'] ...@@ -70,7 +70,7 @@ feed_order = ['x', 'y']
params_dirname = "fit_a_line.inference.model" params_dirname = "fit_a_line.inference.model"
# Plot data # Plot data
from paddle.v2.plot import Ploter from plot import Ploter
train_title = "Train cost" train_title = "Train cost"
test_title = "Test cost" test_title = "Test cost"
...@@ -125,7 +125,7 @@ inferencer = Inferencer( ...@@ -125,7 +125,7 @@ inferencer = Inferencer(
batch_size = 10 batch_size = 10
test_reader = paddle.batch( test_reader = paddle.batch(
paddle.dataset.uci_housing.test(), batch_size=batch_size) paddle.dataset.uci_housing.test(), batch_size=batch_size)
test_data = test_reader().next() test_data = next(test_reader())
test_x = numpy.array([data[0] for data in test_data]).astype("float32") test_x = numpy.array([data[0] for data in test_data]).astype("float32")
test_y = numpy.array([data[1] for data in test_data]).astype("float32") test_y = numpy.array([data[1] for data in test_data]).astype("float32")
......
...@@ -282,7 +282,7 @@ def layer_warp(block_func, input, ch_in, ch_out, count, stride): ...@@ -282,7 +282,7 @@ def layer_warp(block_func, input, ch_in, ch_out, count, stride):
def resnet_cifar10(ipt, depth=32): def resnet_cifar10(ipt, depth=32):
# depth should be one of 20, 32, 44, 56, 110, 1202 # depth should be one of 20, 32, 44, 56, 110, 1202
assert (depth - 2) % 6 == 0 assert (depth - 2) % 6 == 0
n = (depth - 2) / 6 n = (depth - 2) // 6
nStages = {16, 64, 128} nStages = {16, 64, 128}
conv1 = conv_bn_layer(ipt, ch_out=16, filter_size=3, stride=1, padding=1) conv1 = conv_bn_layer(ipt, ch_out=16, filter_size=3, stride=1, padding=1)
res1 = layer_warp(basicblock, conv1, 16, 16, n, 1) res1 = layer_warp(basicblock, conv1, 16, 16, n, 1)
......
...@@ -282,7 +282,7 @@ Note: besides the first convolutional layer and the last fully-connected layer, ...@@ -282,7 +282,7 @@ Note: besides the first convolutional layer and the last fully-connected layer,
def resnet_cifar10(ipt, depth=32): def resnet_cifar10(ipt, depth=32):
# depth should be one of 20, 32, 44, 56, 110, 1202 # depth should be one of 20, 32, 44, 56, 110, 1202
assert (depth - 2) % 6 == 0 assert (depth - 2) % 6 == 0
n = (depth - 2) / 6 n = (depth - 2) // 6
nStages = {16, 64, 128} nStages = {16, 64, 128}
conv1 = conv_bn_layer(ipt, ch_out=16, filter_size=3, stride=1, padding=1) conv1 = conv_bn_layer(ipt, ch_out=16, filter_size=3, stride=1, padding=1)
res1 = layer_warp(basicblock, conv1, 16, 16, n, 1) res1 = layer_warp(basicblock, conv1, 16, 16, n, 1)
......
...@@ -70,7 +70,7 @@ def layer_warp(block_func, input, ch_in, ch_out, count, stride): ...@@ -70,7 +70,7 @@ def layer_warp(block_func, input, ch_in, ch_out, count, stride):
def resnet_cifar10(ipt, depth=32): def resnet_cifar10(ipt, depth=32):
# depth should be one of 20, 32, 44, 56, 110, 1202 # depth should be one of 20, 32, 44, 56, 110, 1202
assert (depth - 2) % 6 == 0 assert (depth - 2) % 6 == 0
n = (depth - 2) / 6 n = (depth - 2) // 6
nStages = {16, 64, 128} nStages = {16, 64, 128}
conv1 = conv_bn_layer(ipt, ch_out=16, filter_size=3, stride=1, padding=1) conv1 = conv_bn_layer(ipt, ch_out=16, filter_size=3, stride=1, padding=1)
res1 = layer_warp(basicblock, conv1, 16, 16, n, 1) res1 = layer_warp(basicblock, conv1, 16, 16, n, 1)
......
...@@ -102,7 +102,7 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -102,7 +102,7 @@ def infer(use_cuda, inference_program, params_dirname=None):
inferencer = Inferencer( inferencer = Inferencer(
infer_func=inference_program, param_path=params_dirname, place=place) infer_func=inference_program, param_path=params_dirname, place=place)
# Prepare testing data. # Prepare testing data.
from PIL import Image from PIL import Image
import numpy as np import numpy as np
import os import os
......
...@@ -208,6 +208,7 @@ import numpy ...@@ -208,6 +208,7 @@ import numpy
from functools import partial from functools import partial
import math import math
import os import os
import six
import sys import sys
from __future__ import print_function from __future__ import print_function
``` ```
...@@ -394,7 +395,7 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -394,7 +395,7 @@ def infer(use_cuda, inference_program, params_dirname=None):
most_possible_word_index = numpy.argmax(result[0]) most_possible_word_index = numpy.argmax(result[0])
print(most_possible_word_index) print(most_possible_word_index)
print([ print([
key for key, value in word_dict.iteritems() key for key, value in six.iteritems(word_dict)
if value == most_possible_word_index if value == most_possible_word_index
][0]) ][0])
``` ```
......
...@@ -221,6 +221,7 @@ import numpy ...@@ -221,6 +221,7 @@ import numpy
from functools import partial from functools import partial
import math import math
import os import os
import six
import sys import sys
from __future__ import print_function from __future__ import print_function
``` ```
...@@ -412,7 +413,7 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -412,7 +413,7 @@ def infer(use_cuda, inference_program, params_dirname=None):
most_possible_word_index = numpy.argmax(result[0]) most_possible_word_index = numpy.argmax(result[0])
print(most_possible_word_index) print(most_possible_word_index)
print([ print([
key for key, value in word_dict.iteritems() key for key, value in six.iteritems(word_dict)
if value == most_possible_word_index if value == most_possible_word_index
][0]) ][0])
``` ```
......
...@@ -12,8 +12,9 @@ ...@@ -12,8 +12,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from __future__ import print_function from __future__ import print_function
import paddle.v2 as paddle import paddle as paddle
import paddle.fluid as fluid import paddle.fluid as fluid
import six
import sys import sys
try: try:
...@@ -176,7 +177,7 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -176,7 +177,7 @@ def infer(use_cuda, inference_program, params_dirname=None):
most_possible_word_index = numpy.argmax(result[0]) most_possible_word_index = numpy.argmax(result[0])
print(most_possible_word_index) print(most_possible_word_index)
print([ print([
key for key, value in word_dict.iteritems() key for key, value in six.iteritems(word_dict)
if value == most_possible_word_index if value == most_possible_word_index
][0]) ][0])
......
...@@ -274,7 +274,7 @@ params_dirname = "understand_sentiment_conv.inference.model" ...@@ -274,7 +274,7 @@ params_dirname = "understand_sentiment_conv.inference.model"
def event_handler(event): def event_handler(event):
if isinstance(event, fluid.contrib.trainer.EndStepEvent): if isinstance(event, fluid.contrib.trainer.EndStepEvent):
print("Step {0}, Epoch {1} Metrics {2}".format( print("Step {0}, Epoch {1} Metrics {2}".format(
event.step, event.epoch, map(np.array, event.metrics))) event.step, event.epoch, list(map(np.array, event.metrics))))
if event.step == 10: if event.step == 10:
trainer.save_params(params_dirname) trainer.save_params(params_dirname)
......
...@@ -281,7 +281,7 @@ params_dirname = "understand_sentiment_conv.inference.model" ...@@ -281,7 +281,7 @@ params_dirname = "understand_sentiment_conv.inference.model"
def event_handler(event): def event_handler(event):
if isinstance(event, fluid.contrib.trainer.EndStepEvent): if isinstance(event, fluid.contrib.trainer.EndStepEvent):
print("Step {0}, Epoch {1} Metrics {2}".format( print("Step {0}, Epoch {1} Metrics {2}".format(
event.step, event.epoch, map(np.array, event.metrics))) event.step, event.epoch, list(map(np.array, event.metrics))))
if event.step == 10: if event.step == 10:
trainer.save_params(params_dirname) trainer.save_params(params_dirname)
......
...@@ -111,7 +111,7 @@ def train(use_cuda, train_program, params_dirname): ...@@ -111,7 +111,7 @@ def train(use_cuda, train_program, params_dirname):
event.step, avg_cost, acc)) event.step, avg_cost, acc))
print("Step {0}, Epoch {1} Metrics {2}".format( print("Step {0}, Epoch {1} Metrics {2}".format(
event.step, event.epoch, map(np.array, event.metrics))) event.step, event.epoch, list(map(np.array, event.metrics))))
elif isinstance(event, EndEpochEvent): elif isinstance(event, EndEpochEvent):
trainer.save_params(params_dirname) trainer.save_params(params_dirname)
...@@ -133,14 +133,14 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -133,14 +133,14 @@ def infer(use_cuda, inference_program, params_dirname=None):
place=place) place=place)
# Setup input by creating LoDTensor to represent sequence of words. # Setup input by creating LoDTensor to represent sequence of words.
# Here each word is the basic element of the LoDTensor and the shape of # Here each word is the basic element of the LoDTensor and the shape of
# each word (base_shape) should be [1] since it is simply an index to # each word (base_shape) should be [1] since it is simply an index to
# look up for the corresponding word vector. # look up for the corresponding word vector.
# Suppose the length_based level of detail (lod) info is set to [[3, 4, 2]], # Suppose the length_based level of detail (lod) info is set to [[3, 4, 2]],
# which has only one lod level. Then the created LoDTensor will have only # which has only one lod level. Then the created LoDTensor will have only
# one higher level structure (sequence of words, or sentence) than the basic # one higher level structure (sequence of words, or sentence) than the basic
# element (word). Hence the LoDTensor will hold data for three sentences of # element (word). Hence the LoDTensor will hold data for three sentences of
# length 3, 4 and 2, respectively. # length 3, 4 and 2, respectively.
# Note that lod info should be a list of lists. # Note that lod info should be a list of lists.
reviews_str = [ reviews_str = [
......
...@@ -128,7 +128,7 @@ def train(use_cuda, train_program, params_dirname): ...@@ -128,7 +128,7 @@ def train(use_cuda, train_program, params_dirname):
event.step, avg_cost, acc)) event.step, avg_cost, acc))
print("Step {0}, Epoch {1} Metrics {2}".format( print("Step {0}, Epoch {1} Metrics {2}".format(
event.step, event.epoch, map(np.array, event.metrics))) event.step, event.epoch, list(map(np.array, event.metrics))))
elif isinstance(event, EndEpochEvent): elif isinstance(event, EndEpochEvent):
trainer.save_params(params_dirname) trainer.save_params(params_dirname)
...@@ -150,14 +150,14 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -150,14 +150,14 @@ def infer(use_cuda, inference_program, params_dirname=None):
place=place) place=place)
# Setup input by creating LoDTensor to represent sequence of words. # Setup input by creating LoDTensor to represent sequence of words.
# Here each word is the basic element of the LoDTensor and the shape of # Here each word is the basic element of the LoDTensor and the shape of
# each word (base_shape) should be [1] since it is simply an index to # each word (base_shape) should be [1] since it is simply an index to
# look up for the corresponding word vector. # look up for the corresponding word vector.
# Suppose the length_based level of detail (lod) info is set to [[3, 4, 2]], # Suppose the length_based level of detail (lod) info is set to [[3, 4, 2]],
# which has only one lod level. Then the created LoDTensor will have only # which has only one lod level. Then the created LoDTensor will have only
# one higher level structure (sequence of words, or sentence) than the basic # one higher level structure (sequence of words, or sentence) than the basic
# element (word). Hence the LoDTensor will hold data for three sentences of # element (word). Hence the LoDTensor will hold data for three sentences of
# length 3, 4 and 2, respectively. # length 3, 4 and 2, respectively.
# Note that lod info should be a list of lists. # Note that lod info should be a list of lists.
reviews_str = [ reviews_str = [
......
...@@ -119,7 +119,7 @@ def train(use_cuda, train_program, params_dirname): ...@@ -119,7 +119,7 @@ def train(use_cuda, train_program, params_dirname):
event.step, avg_cost, acc)) event.step, avg_cost, acc))
print("Step {0}, Epoch {1} Metrics {2}".format( print("Step {0}, Epoch {1} Metrics {2}".format(
event.step, event.epoch, map(np.array, event.metrics))) event.step, event.epoch, list(map(np.array, event.metrics))))
elif isinstance(event, EndEpochEvent): elif isinstance(event, EndEpochEvent):
trainer.save_params(params_dirname) trainer.save_params(params_dirname)
...@@ -141,14 +141,14 @@ def infer(use_cuda, inference_program, params_dirname=None): ...@@ -141,14 +141,14 @@ def infer(use_cuda, inference_program, params_dirname=None):
place=place) place=place)
# Setup input by creating LoDTensor to represent sequence of words. # Setup input by creating LoDTensor to represent sequence of words.
# Here each word is the basic element of the LoDTensor and the shape of # Here each word is the basic element of the LoDTensor and the shape of
# each word (base_shape) should be [1] since it is simply an index to # each word (base_shape) should be [1] since it is simply an index to
# look up for the corresponding word vector. # look up for the corresponding word vector.
# Suppose the length_based level of detail (lod) info is set to [[3, 4, 2]], # Suppose the length_based level of detail (lod) info is set to [[3, 4, 2]],
# which has only one lod level. Then the created LoDTensor will have only # which has only one lod level. Then the created LoDTensor will have only
# one higher level structure (sequence of words, or sentence) than the basic # one higher level structure (sequence of words, or sentence) than the basic
# element (word). Hence the LoDTensor will hold data for three sentences of # element (word). Hence the LoDTensor will hold data for three sentences of
# length 3, 4 and 2, respectively. # length 3, 4 and 2, respectively.
# Note that lod info should be a list of lists. # Note that lod info should be a list of lists.
reviews_str = [ reviews_str = [
......
...@@ -184,8 +184,9 @@ from __future__ import print_function ...@@ -184,8 +184,9 @@ from __future__ import print_function
import math, os import math, os
import numpy as np import numpy as np
import paddle import paddle
import paddle.v2.dataset.conll05 as conll05 import paddle.dataset.conll05 as conll05
import paddle.fluid as fluid import paddle.fluid as fluid
import six
import time import time
with_gpu = os.getenv('WITH_GPU', '0') != '0' with_gpu = os.getenv('WITH_GPU', '0') != '0'
...@@ -417,7 +418,7 @@ def train(use_cuda, save_dirname=None, is_local=True): ...@@ -417,7 +418,7 @@ def train(use_cuda, save_dirname=None, is_local=True):
start_time = time.time() start_time = time.time()
batch_id = 0 batch_id = 0
for pass_id in xrange(PASS_NUM): for pass_id in six.moves.xrange(PASS_NUM):
for data in train_data(): for data in train_data():
cost = exe.run(main_program, cost = exe.run(main_program,
feed=feeder.feed(data), feed=feeder.feed(data),
......
...@@ -207,8 +207,9 @@ from __future__ import print_function ...@@ -207,8 +207,9 @@ from __future__ import print_function
import math, os import math, os
import numpy as np import numpy as np
import paddle import paddle
import paddle.v2.dataset.conll05 as conll05 import paddle.dataset.conll05 as conll05
import paddle.fluid as fluid import paddle.fluid as fluid
import six
import time import time
with_gpu = os.getenv('WITH_GPU', '0') != '0' with_gpu = os.getenv('WITH_GPU', '0') != '0'
...@@ -427,7 +428,7 @@ def train(use_cuda, save_dirname=None, is_local=True): ...@@ -427,7 +428,7 @@ def train(use_cuda, save_dirname=None, is_local=True):
start_time = time.time() start_time = time.time()
batch_id = 0 batch_id = 0
for pass_id in xrange(PASS_NUM): for pass_id in six.moves.xrange(PASS_NUM):
for data in train_data(): for data in train_data():
cost = exe.run(main_program, cost = exe.run(main_program,
feed=feeder.feed(data), feed=feeder.feed(data),
......
...@@ -3,8 +3,9 @@ from __future__ import print_function ...@@ -3,8 +3,9 @@ from __future__ import print_function
import math, os import math, os
import numpy as np import numpy as np
import paddle import paddle
import paddle.v2.dataset.conll05 as conll05 import paddle.dataset.conll05 as conll05
import paddle.fluid as fluid import paddle.fluid as fluid
import six
import time import time
with_gpu = os.getenv('WITH_GPU', '0') != '0' with_gpu = os.getenv('WITH_GPU', '0') != '0'
...@@ -167,7 +168,7 @@ def train(use_cuda, save_dirname=None, is_local=True): ...@@ -167,7 +168,7 @@ def train(use_cuda, save_dirname=None, is_local=True):
start_time = time.time() start_time = time.time()
batch_id = 0 batch_id = 0
for pass_id in xrange(PASS_NUM): for pass_id in six.moves.xrange(PASS_NUM):
for data in train_data(): for data in train_data():
cost = exe.run( cost = exe.run(
main_program, feed=feeder.feed(data), fetch_list=[avg_cost]) main_program, feed=feeder.feed(data), fetch_list=[avg_cost])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册