提交 0087e3cc 编写于 作者: Q qingqing01

fix bug in 03.image_classification

上级 1ba8782b
...@@ -364,8 +364,7 @@ momentum_optimizer = paddle.optimizer.Momentum( ...@@ -364,8 +364,7 @@ momentum_optimizer = paddle.optimizer.Momentum(
learning_rate=0.1 / 128.0, learning_rate=0.1 / 128.0,
learning_rate_decay_a=0.1, learning_rate_decay_a=0.1,
learning_rate_decay_b=50000 * 100, learning_rate_decay_b=50000 * 100,
learning_rate_schedule='discexp', learning_rate_schedule='discexp')
batch_size=128)
# Create trainer # Create trainer
trainer = paddle.trainer.SGD(cost=cost, trainer = paddle.trainer.SGD(cost=cost,
...@@ -483,7 +482,7 @@ Figure 12. The error rate of VGG model on CIFAR10 ...@@ -483,7 +482,7 @@ Figure 12. The error rate of VGG model on CIFAR10
## Application ## Application
After training is done, users can use the trained model to classify images. The following code shows how to infer through `paddle.infer` interface. After training is done, users can use the trained model to classify images. The following code shows how to infer through `paddle.infer` interface. You can remove the comments to change the model name.
```python ```python
from PIL import Image from PIL import Image
...@@ -491,12 +490,19 @@ import numpy as np ...@@ -491,12 +490,19 @@ import numpy as np
def load_image(file): def load_image(file):
im = Image.open(file) im = Image.open(file)
im = im.resize((32, 32), Image.ANTIALIAS) im = im.resize((32, 32), Image.ANTIALIAS)
im = np.array(im).astype(np.float32).flatten() im = np.array(im).astype(np.float32)
im = im.transpose((2, 0, 1)) # CHW
im = im[(2, 1, 0),:,:] # BGR
im = im.flatten()
im = im / 255.0 im = im / 255.0
return im return im
test_data = [] test_data = []
test_data.append((load_image('image/dog.png'),)) test_data.append((load_image('image/dog.png'),))
# users can remove the comments and change the model name
# with gzip.open('params_pass_50.tar.gz', 'r') as f:
# parameters = paddle.parameters.Parameters.from_tar(f)
probs = paddle.infer( probs = paddle.infer(
output_layer=out, parameters=parameters, input=test_data) output_layer=out, parameters=parameters, input=test_data)
lab = np.argsort(-probs) # probs and lab are the results of one batch data lab = np.argsort(-probs) # probs and lab are the results of one batch data
......
...@@ -356,8 +356,7 @@ momentum_optimizer = paddle.optimizer.Momentum( ...@@ -356,8 +356,7 @@ momentum_optimizer = paddle.optimizer.Momentum(
learning_rate=0.1 / 128.0, learning_rate=0.1 / 128.0,
learning_rate_decay_a=0.1, learning_rate_decay_a=0.1,
learning_rate_decay_b=50000 * 100, learning_rate_decay_b=50000 * 100,
learning_rate_schedule='discexp', learning_rate_schedule='discexp')
batch_size=128)
# Create trainer # Create trainer
trainer = paddle.trainer.SGD(cost=cost, trainer = paddle.trainer.SGD(cost=cost,
...@@ -475,7 +474,7 @@ Test with Pass 0, {'classification_error_evaluator': 0.885200023651123} ...@@ -475,7 +474,7 @@ Test with Pass 0, {'classification_error_evaluator': 0.885200023651123}
## 应用模型 ## 应用模型
可以使用训练好的模型对图片进行分类,下面程序展示了如何使用`paddle.infer`接口进行推断。 可以使用训练好的模型对图片进行分类,下面程序展示了如何使用`paddle.infer`接口进行推断,可以打开注释,更改加载的模型
```python ```python
from PIL import Image from PIL import Image
...@@ -483,12 +482,19 @@ import numpy as np ...@@ -483,12 +482,19 @@ import numpy as np
def load_image(file): def load_image(file):
im = Image.open(file) im = Image.open(file)
im = im.resize((32, 32), Image.ANTIALIAS) im = im.resize((32, 32), Image.ANTIALIAS)
im = np.array(im).astype(np.float32).flatten() im = np.array(im).astype(np.float32)
im = im.transpose((2, 0, 1)) # CHW
im = im[(2, 1, 0),:,:] # BGR
im = im.flatten()
im = im / 255.0 im = im / 255.0
return im return im
test_data = [] test_data = []
test_data.append((load_image('image/dog.png'),)) test_data.append((load_image('image/dog.png'),))
# with gzip.open('params_pass_50.tar.gz', 'r') as f:
# parameters = paddle.parameters.Parameters.from_tar(f)
probs = paddle.infer( probs = paddle.infer(
output_layer=out, parameters=parameters, input=test_data) output_layer=out, parameters=parameters, input=test_data)
lab = np.argsort(-probs) # probs and lab are the results of one batch data lab = np.argsort(-probs) # probs and lab are the results of one batch data
......
...@@ -406,8 +406,7 @@ momentum_optimizer = paddle.optimizer.Momentum( ...@@ -406,8 +406,7 @@ momentum_optimizer = paddle.optimizer.Momentum(
learning_rate=0.1 / 128.0, learning_rate=0.1 / 128.0,
learning_rate_decay_a=0.1, learning_rate_decay_a=0.1,
learning_rate_decay_b=50000 * 100, learning_rate_decay_b=50000 * 100,
learning_rate_schedule='discexp', learning_rate_schedule='discexp')
batch_size=128)
# Create trainer # Create trainer
trainer = paddle.trainer.SGD(cost=cost, trainer = paddle.trainer.SGD(cost=cost,
...@@ -525,7 +524,7 @@ Figure 12. The error rate of VGG model on CIFAR10 ...@@ -525,7 +524,7 @@ Figure 12. The error rate of VGG model on CIFAR10
## Application ## Application
After training is done, users can use the trained model to classify images. The following code shows how to infer through `paddle.infer` interface. After training is done, users can use the trained model to classify images. The following code shows how to infer through `paddle.infer` interface. You can remove the comments to change the model name.
```python ```python
from PIL import Image from PIL import Image
...@@ -533,12 +532,19 @@ import numpy as np ...@@ -533,12 +532,19 @@ import numpy as np
def load_image(file): def load_image(file):
im = Image.open(file) im = Image.open(file)
im = im.resize((32, 32), Image.ANTIALIAS) im = im.resize((32, 32), Image.ANTIALIAS)
im = np.array(im).astype(np.float32).flatten() im = np.array(im).astype(np.float32)
im = im.transpose((2, 0, 1)) # CHW
im = im[(2, 1, 0),:,:] # BGR
im = im.flatten()
im = im / 255.0 im = im / 255.0
return im return im
test_data = [] test_data = []
test_data.append((load_image('image/dog.png'),)) test_data.append((load_image('image/dog.png'),))
# users can remove the comments and change the model name
# with gzip.open('params_pass_50.tar.gz', 'r') as f:
# parameters = paddle.parameters.Parameters.from_tar(f)
probs = paddle.infer( probs = paddle.infer(
output_layer=out, parameters=parameters, input=test_data) output_layer=out, parameters=parameters, input=test_data)
lab = np.argsort(-probs) # probs and lab are the results of one batch data lab = np.argsort(-probs) # probs and lab are the results of one batch data
......
...@@ -398,8 +398,7 @@ momentum_optimizer = paddle.optimizer.Momentum( ...@@ -398,8 +398,7 @@ momentum_optimizer = paddle.optimizer.Momentum(
learning_rate=0.1 / 128.0, learning_rate=0.1 / 128.0,
learning_rate_decay_a=0.1, learning_rate_decay_a=0.1,
learning_rate_decay_b=50000 * 100, learning_rate_decay_b=50000 * 100,
learning_rate_schedule='discexp', learning_rate_schedule='discexp')
batch_size=128)
# Create trainer # Create trainer
trainer = paddle.trainer.SGD(cost=cost, trainer = paddle.trainer.SGD(cost=cost,
...@@ -517,7 +516,7 @@ Test with Pass 0, {'classification_error_evaluator': 0.885200023651123} ...@@ -517,7 +516,7 @@ Test with Pass 0, {'classification_error_evaluator': 0.885200023651123}
## 应用模型 ## 应用模型
可以使用训练好的模型对图片进行分类,下面程序展示了如何使用`paddle.infer`接口进行推断。 可以使用训练好的模型对图片进行分类,下面程序展示了如何使用`paddle.infer`接口进行推断,可以打开注释,更改加载的模型
```python ```python
from PIL import Image from PIL import Image
...@@ -525,12 +524,19 @@ import numpy as np ...@@ -525,12 +524,19 @@ import numpy as np
def load_image(file): def load_image(file):
im = Image.open(file) im = Image.open(file)
im = im.resize((32, 32), Image.ANTIALIAS) im = im.resize((32, 32), Image.ANTIALIAS)
im = np.array(im).astype(np.float32).flatten() im = np.array(im).astype(np.float32)
im = im.transpose((2, 0, 1)) # CHW
im = im[(2, 1, 0),:,:] # BGR
im = im.flatten()
im = im / 255.0 im = im / 255.0
return im return im
test_data = [] test_data = []
test_data.append((load_image('image/dog.png'),)) test_data.append((load_image('image/dog.png'),))
# with gzip.open('params_pass_50.tar.gz', 'r') as f:
# parameters = paddle.parameters.Parameters.from_tar(f)
probs = paddle.infer( probs = paddle.infer(
output_layer=out, parameters=parameters, input=test_data) output_layer=out, parameters=parameters, input=test_data)
lab = np.argsort(-probs) # probs and lab are the results of one batch data lab = np.argsort(-probs) # probs and lab are the results of one batch data
......
...@@ -54,8 +54,7 @@ def main(): ...@@ -54,8 +54,7 @@ def main():
learning_rate=0.1 / 128.0, learning_rate=0.1 / 128.0,
learning_rate_decay_a=0.1, learning_rate_decay_a=0.1,
learning_rate_decay_b=50000 * 100, learning_rate_decay_b=50000 * 100,
learning_rate_schedule='discexp', learning_rate_schedule='discexp')
batch_size=128)
# End batch and end pass event handler # End batch and end pass event handler
def event_handler(event): def event_handler(event):
...@@ -86,7 +85,7 @@ def main(): ...@@ -86,7 +85,7 @@ def main():
paddle.reader.shuffle( paddle.reader.shuffle(
paddle.dataset.cifar.train10(), buf_size=50000), paddle.dataset.cifar.train10(), buf_size=50000),
batch_size=128), batch_size=128),
num_passes=1, num_passes=200,
event_handler=event_handler, event_handler=event_handler,
feeding={'image': 0, feeding={'image': 0,
'label': 1}) 'label': 1})
...@@ -98,13 +97,20 @@ def main(): ...@@ -98,13 +97,20 @@ def main():
def load_image(file): def load_image(file):
im = Image.open(file) im = Image.open(file)
im = im.resize((32, 32), Image.ANTIALIAS) im = im.resize((32, 32), Image.ANTIALIAS)
im = np.array(im).astype(np.float32).flatten() im = np.array(im).astype(np.float32)
im = im.transpose((2, 0, 1)) # CHW
im = im[(2, 1, 0), :, :] # BGR
im = im.flatten()
im = im / 255.0 im = im / 255.0
return im return im
test_data = [] test_data = []
test_data.append((load_image('image/dog.png'), )) test_data.append((load_image('image/dog.png'), ))
# users can remove the comments and change the model name
# with gzip.open('params_pass_50.tar.gz', 'r') as f:
# parameters = paddle.parameters.Parameters.from_tar(f)
probs = paddle.infer( probs = paddle.infer(
output_layer=out, parameters=parameters, input=test_data) output_layer=out, parameters=parameters, input=test_data)
lab = np.argsort(-probs) # probs and lab are the results of one batch data lab = np.argsort(-probs) # probs and lab are the results of one batch data
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册