NOTE_北大Tensorflow概述

0.Overview

ChapterContent
1神经网络——计算过程:搭建第一个神经网络模型。
2神经网络——优化方法:学习率、激活函数、损失函数、正则化,自写 5 种反向传播优化器(SGD / Momentum / Adagrad / RMSProp / Adam)
3神经网络——搭建八股:“六步法”编写手写数字识别训练模型。
4神经网络——八股扩展:增加 6 项扩展功能:自制数据集、数据增强、断点续训、参数提取和 acc / loss 可视化,实现给图识物。
5卷积神经网络:用基础CNN、LeNet、AlexNet、VGGNet、InceptionNet和ResNet实现图像识别。
6循环神经网络:用基础RNN、LSTM、GRU实现股票预测。
#define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978
12-22
### 代码用途 这段C语言宏定义代码的主要用途是为音符对应的频率值定义常量,方便在程序中使用。在音乐相关的程序开发中,要根据不同的音符来发出特定频率的声音,通过这些宏定义可以清晰、准确地指定每个音符的频率。例如,在开发简易音乐播放器、音乐游戏或者音乐合成器等程序时,能够直接使用这些常量来表示音乐中的各个音符频率。 ### 优化建议 - **减少重复定义**:如果存在一些音符频率在不同的音乐场景下经常组合使用,可以进一步定义包含多个音符频率的数组或结构体,以减少代码的重复引用。 ```c // 定义一个常见的八度音符频率数组 #define NUM_NOTES_IN_OCTAVE 12 const int octave_notes[NUM_NOTES_IN_OCTAVE] = { NOTE_C1, NOTE_CS1, NOTE_D1, NOTE_DS1, NOTE_E1, NOTE_F1, NOTE_FS1, NOTE_G1, NOTE_GS1, NOTE_A1, NOTE_AS1, NOTE_B1 }; ``` - **使用枚举类型**:对于音符的表示,使用枚举类型可以提高代码的可读性和可维护性。 ```c typedef enum { B0 = NOTE_B0, C1 = NOTE_C1, CS1 = NOTE_CS1, // 其他音符... D8 = NOTE_D8 } Note; ``` - **模块化管理**:将这些音符频率的宏定义单独放在一个头文件中,例如`notes.h`,然后在需要使用的源文件中包含这个头文件,这样可以使代码结构更加清晰。 ### 应用场景 - **音乐播放**:在开发音乐播放程序时,根据乐谱中的音符序列,使用这些频率常量控制扬声器发出相应频率的声音,实现音乐的播放。 ```c #include <stdio.h> #include <unistd.h> #include <wiringPi.h> // 假设使用树莓派的wiringPi库控制扬声器 #define SPEAKER_PIN 1 void play_note(int frequency, int duration) { // 这里简单模拟播放音符,实际需要根据硬件进行实现 // 例如使用定时器产生PWM信号 printf("Playing note with frequency %d Hz for %d ms\n", frequency, duration); usleep(duration * 1000); } int main() { wiringPiSetup(); pinMode(SPEAKER_PIN, OUTPUT); // 播放一个简单的音符序列 play_note(NOTE_C4, 500); play_note(NOTE_D4, 500); play_note(NOTE_E4, 500); return 0; } ``` - **音乐教育软件**:在音乐教育软件中,通过这些常量可以直观地展示音符和频率之间的关系,帮助用户更好地理解音乐理论。 - **音频合成**:在音频合成领域,根据音乐的节奏和音符,使用这些频率常量结合音频合成算法,生成各种音乐效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值