รหัสนี้สร้าง CrossFit WODs (การออกกำลังกายในแต่ละวัน) ด้วยเครือข่ายประสาทที่เกิดซ้ำ (โมเดล char-rnn ของ Andrej Karpathy) เครือข่ายได้รับการฝึกอบรมเกี่ยวกับตัวอย่าง WOD 5,000 ชิ้นที่รวบรวมจากกล่องครอสฟิตต่างๆ แม้จะมีชุดข้อมูลขนาดเล็ก แต่ผลลัพธ์ก็ทั้งสนุกและน่าพึงพอใจ
ผลลัพธ์ดีๆบางส่วนสามารถดูได้จากที่นี่
แน่นอนว่าไม่ใช่ว่าผลลัพธ์ทั้งหมดจะดีเยี่ยม นี่คือเรื่องตลกบางส่วน:
ศูนย์ WOD
0 rounds for time 15 minutes
800 mt run
10 sumo deadlift high pull
9 front squat
1 muscle-up
พักผ่อน
5 rounds for time
20 minutes rest
WOD แทบจะเป็นไปไม่ได้เลย
5 rounds for time 20 minutes
100 double under
50 wall-ball
ใน WOD นี้ ไม่มีแถว แต่เครือข่ายยังคงต้องการให้มีเบอร์ปีอยู่เหนือแถว
7 rounds for time
18 dumbbell squat clean
15 burpees over the row
250 mt run
แบบฝึกหัดจินตนาการบางอย่าง
brusseane push-up
t-up
touster
lean & jerk
publ-up
dumbell burpee over the bar
hanging ring in
louble under
ode-hand dip
roundstand walk
tempo kim back extension
muscle sprint
pistol squat snatch
over clean
elite push-up
inverted barbell
rest clean
pill-up
WOD ทั้งหมดถูกรวบรวมจาก:
หลังจากรวบรวม WOD ทั้งหมดจะถูกทำให้เป็นมาตรฐานทางไวยากรณ์ด้วยมือ นั่นเป็นสาเหตุที่ชุดข้อมูลมีขนาดเล็กมาก ฉันต้องการที่จะป้อน WOD มากขึ้น แต่แหล่งข้อมูลทั้งหมดใช้รูปแบบที่แตกต่างกัน บางส่วนใช้ตัวย่อ บางส่วนใช้ตัวย่อ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ชุดข้อมูลทั้งหมดควรอยู่ในรูปแบบเดียวกัน
ชุดข้อมูลสามารถพบได้ใน data/wods.txt
หรือดีกว่านั้นอยู่ในตาราง wod
ในฐานข้อมูล sqlite ที่อยู่ db.sqlite
รู้สึกอิสระที่จะใช้มัน
ความต้องการ:
> cd char-rnn
> python train.py --help
usage: train.py [-h] [--input_file INPUT_FILE] [--rnn_size RNN_SIZE]
[--num_layers NUM_LAYERS] [--model MODEL]
[--batch_size BATCH_SIZE] [--seq_length SEQ_LENGTH]
[--num_epochs NUM_EPOCHS] [--log_step LOG_STEP]
[--grad_clip GRAD_CLIP] [--learning_rate LEARNING_RATE]
[--decay_rate DECAY_RATE]
[--input_dropout_keep_prob INPUT_DROPOUT_KEEP_PROB]
[--output_dropout_keep_prob OUTPUT_DROPOUT_KEEP_PROB]
[--train_root_dir TRAIN_ROOT_DIR] [--vocab_size VOCAB_SIZE]
optional arguments:
-h, --help show this help message and exit
--input_file INPUT_FILE
Input text file to train on
--rnn_size RNN_SIZE The size of RNN hidden state
--num_layers NUM_LAYERS
The number of layers in the RNN
--model MODEL RNN model: rnn, gru, lstm, or nas
--batch_size BATCH_SIZE
Batch size
--seq_length SEQ_LENGTH
RNN sequence length
--num_epochs NUM_EPOCHS
Number of epochs for training
--log_step LOG_STEP Logging period in terms of iteration
--grad_clip GRAD_CLIP
Clip gradients value
--learning_rate LEARNING_RATE
Learning rate for adam optimizer
--decay_rate DECAY_RATE
Learning rate for adam optimizer
--input_dropout_keep_prob INPUT_DROPOUT_KEEP_PROB
Input dropout keep probability
--output_dropout_keep_prob OUTPUT_DROPOUT_KEEP_PROB
Output dropout keep probability
--train_root_dir TRAIN_ROOT_DIR
Root directory to put the training data
> cd char-rnn
> python sample.py --help
usage: sample.py [-h] [--data_dir DATA_DIR] [--seperator_char SEPERATOR_CHAR]
[--num_sample NUM_SAMPLE] [--save_to_db [SAVE_TO_DB]]
[--nosave_to_db]
optional arguments:
-h, --help show this help message and exit
--data_dir DATA_DIR Training data directory. If empty, latest folder in
training/ folder will be used
--seperator_char SEPERATOR_CHAR
WOD item seperator character, default `|`
--num_sample NUM_SAMPLE
The number of WODs to be sampled, default 1
--save_to_db [SAVE_TO_DB]
Should save into sqlite, default false
--nosave_to_db