Skip to content

Commit e61f2fa

Browse files
committed
fix png links
1 parent a536830 commit e61f2fa

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

docs/design/concepts/python_data_feeding.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
In the former implementation of Paddle Fluid, there are two ways to feed data:
44

5-
- Use `reader_op` in backend C++ side. This method only supports data feeding from recordio files and random data generators, but supports many kinds of `decorated_readers`. For examples, `double_buffer_reader` uses two threads to achieve better performance: one for time-consuming I/O operations, and the other for `Executor::Run()`. See [C++ Data Feeding](https://github.com/PaddlePaddle/docs/blob/TensorFlow-Paddle-docs/docs/design/concepts/cpp_data_feeding.md) for details.
5+
- Use `reader_op` in backend C++ side. This method only supports data feeding from recordio files and random data generators, but supports many kinds of `decorated_readers`. For examples, `double_buffer_reader` uses two threads to achieve better performance: one for time-consuming I/O operations, and the other for `Executor::Run()`. See [C++ Data Feeding](https://github.com/PaddlePaddle/docs/blob/develop/docs/design/concepts/cpp_data_feeding.md) for details.
66

77
- Feed data directly using `DataFeeder.feed()` in Python codes. It is more flexible than the first way. Many kinds of preprocessing steps can be performed before feeding using Python or any other languages, instead of adding many uncommon `operators` in C++ side. But this method is less efficient: the program cannot read the next mini-batch data before `Executor::Run()` ends. Moreover, `decorated_readers` such as `double_buffer_reader` cannot be used for better performance.
88

docs/design/concurrent/channel.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ current thread under two conditions:
103103
2. The channel is unbuffered and does not have a receiver
104104

105105
- **recvq**: This queue holds the QueueMessage of any pending receivers of a
106-
channel. When a thread performs a channel_recv operation on the channel, the
107-
channel_recv operation will put a new QueueMessage on the recvq and block the
108-
current thread under two conditions:
106+
channel. When a thread performs a channel_recv operation on the channel, the
107+
channel_recv operation will put a new QueueMessage on the recvq and block the
108+
current thread under two conditions:
109109
1. The channel is buffered and there is no data on the buff_
110110
2. The channel is unbuffered and does not have a sender
111111

@@ -114,15 +114,17 @@ current thread under two conditions:
114114
#### Channel Send
115115

116116
<p align="center">
117-
<img src="https://raw.githubusercontent.com/PaddlePaddle/docs/blob/develop/docs/design/concurrent/images/channel_send.png"/><br/>
117+
<img src="https://github.com/PaddlePaddle/docs/blob/develop/docs/design/concurrent/images/channel_recv.png?raw=true"/><br/>
118118
</p>
119119

120+
120121
#### Channel Receive
121122

122123
<p align="center">
123-
<img src="https://raw.githubusercontent.com/PaddlePaddle/docs/blob/develop/docs/design/concurrent/images/channel_recv.png"/><br/>
124+
<img src="https://github.com/PaddlePaddle/docs/blob/develop/docs/design/concurrent/images/channel_send.png?raw=true"/><br/>
124125
</p>
125126

127+
126128
## Limitations and Considerations
127129

128130
### Variable Copy

docs/design/concurrent/select_op.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,10 @@ only one case will be executed.
254254
### select_op flow
255255

256256
<p align="center">
257-
<img src="https://raw.githubusercontent.com/PaddlePaddle/docs/blob/develop/docs/design/concurrent/images/select_op_workflow.png"/><br/>
257+
<img src="https://github.com/PaddlePaddle/docs/blob/develop/docs/design/concurrent/images/select_op_workflow.png?raw=true"/><br/>
258258
</p>
259259

260+
260261
The select algorithm is inspired by golang's select routine. Please refer to
261262
http://www.tapirgames.com/blog/golang-concurrent-select-implementation for more information.
262263

0 commit comments

Comments
 (0)