Comments (8)
This is for gated cnn and of course it needs 2 same cnn .
from pytorch-cyclegan-vc2.
from pytorch-cyclegan-vc2.
- In this implemented version, it uses interpolate rather than pixelshuffle for upsampling. So during upsampling, firstly the input is fed into conv2d layer whose output channel is 1024. The next step is to interpolate the output which only makes the width and height twice and doesn't change the channel size.(for details you can see model_vc2.py file).
- The original input size is 3-dimensional ([batchsize,width,height]). To do 2d convolution, the original input needs to be unsqueezed in the second dimension(now the size is [batchsize,1,width,height]). And the input fed into last conv layer is also 4 dimensional with >1 channels. So the last 1*1 conv is to let channel size be 1. In the end, the output is squeezed in the second dimension to remove the channel dimension and now the output is the same size with original input.
from pytorch-cyclegan-vc2.
thanks~
1 . i know you uses interpolate rather than pixelshuffle for upsampling, i means Is there any problem with the structure of the original paper?
2.i get it,thanks~
3.why we should swap the dimensional in the discriminator?what we want is just a feature map,right?
i cannot understand this code:
downSample4 = downSample4.contiguous().permute(0, 2, 3, 1).contiguous()
from pytorch-cyclegan-vc2.
- I get what you said and i also think the sructure of original paper seems to have some problems with the output the channel after pixelshuffle.
- Yep I think without the swap it will still be ok. And the contiguous() is to make the storage address of the tensor next to each other. If a tensor has went through view() or transpose() and you want to view or transpose the tensor again, you must call .contiguous() function.
from pytorch-cyclegan-vc2.
thanks a lot ~
from pytorch-cyclegan-vc2.
hi~i get some new puzzle...
here is the code in trainingdataset:
if name == 'main':
trainA = np.random.randn(162, 24, 554)
trainB = np.random.randn(158, 24, 554)
dataset = trainingDataset(trainA, trainB)
trainLoader = torch.utils.data.DataLoader(dataset=dataset,
batch_size=2,
shuffle=True)
for epoch in range(10):
for i, (trainA, trainB) in enumerate(trainLoader):
print(trainA.shape, trainB.shape)
what is the trainA and trainB's first dimensional ? i know it maybe ( ?, feature_numbers ,lenth)
from pytorch-cyclegan-vc2.
i think it means :i have 162 voice segments,and i extract features (24,554) from every segments,so the input is (162,24,554),did i get so mistake?
from pytorch-cyclegan-vc2.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pytorch-cyclegan-vc2.