diff_classifier.features
¶
diff_classifier.features
¶
-
diff_classifier.features.
alpha_calc
(track)[source]¶ Calculates the parameter alpha by fitting track MSD data to a function.
- track : pandas DataFrame
- At a minimum, must contain a Frames and a MSDs column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- a : numpy.float64
- The anomalous exponent derived by fitting MSD values to the function, <r**2(n)> = 4*D*(n*delt)**a
- D : numpy.float64
- The fitted diffusion coefficient derived by fitting MSD values to the function above.
>>> frames = 5 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> alpha_calc(df) (2.0000000000000004, 0.4999999999999999)
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames)+3), 'Y': np.cos(np.linspace(1, frames, frames)+3)} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> alpha_calc(df) (0.023690002018364065, 0.5144436515510022)
-
diff_classifier.features.
aspectratio
(track)[source]¶ Calculates the aspect ratio of the rectangle containing the input track.
- track : pandas DataFrame
- At a minimum, must contain an X and Y column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- ar : numpy.float64
- aspect ratio of the trajectory. Always >= 1.
- elong : numpy.float64
- elongation of the trajectory. A transformation of the aspect ratio given by 1 - ar**-1.
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> aspectratio(df)<PHONE_NUMBER>273195.0, 0.99999999999999978)
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames))+3, 'Y': np.cos(np.linspace(1, frames, frames))+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> aspectratio(df) (1.0997501702946164, 0.090702573174318291)
-
diff_classifier.features.
asymmetry
(track)[source]¶ Calculates the asymmetry of the trajectory.
- track : pandas DataFrame
- At a minimum, must contain an X and Y column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- l1 : numpy.float64
- Dominant eigenvalue of the gyration tensor.
- l2 : numpy.float64
- Secondary eigenvalue of the gyration tensor.
- a1 : numpy.float64
- asymmetry of the input track. Equal to 0 for circularly symmetric tracks, and 1 for linear tracks.
- a2 : numpy.float64
- alternate definition of asymmetry. Equal to 1 for circularly symmetric tracks, and 0 for linear tracks.
- a3 : numpy.float64
- alternate definition of asymmetry.
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> asymmetry(df) (16.5, 0.0, 1.0, 0.0, 0.69314718055994529)
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames)+3), 'Y': np.cos(np.linspace(1, frames, frames)+3)} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> asymmetry(df) (0.53232560128104522, 0.42766829138901619, 0.046430119259539708, 0.80339606128247354, 0.0059602683290953052)
-
diff_classifier.features.
boundedness
(track, framerate=1)[source]¶ Calculates the boundedness, fractal dimension, and trappedness of the input track.
- track : pandas DataFrame
- At a minimum, must contain a Frames and a MSDs column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- framerate : framrate of the video being analyzed. Actually cancels out. So
- why did I include this. Default is 1.
- B : numpy.float64
- Boundedness of the input track. Quantifies how much a particle with diffusion coefficient D is restricted by a circular confinement of radius r when it diffuses for a time duration N*delt. Defined as B = D*N*delt/r**2. For this case, D is the short time diffusion coefficient (after 2 frames), and r is half the maximum distance between any two positions.
- Df : numpy.float64
- The fractal path dimension defined as Df = log(N)/log(N*d*l**-1) where L is the total length (sum over all steplengths), N is the number of steps, and d is the largest distance between any two positions.
- pf : numpy.float64
- The probability that a particle with diffusion coefficient D and traced for a period of time N*delt is trapped in region r0. Given by pt = 1 - exp(0.2048 - 0.25117*(D*N*delt/r0**2)) For this case, D is the short time diffusion coefficient, and r0 is half the maximum distance between any two positions.
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> boundedness(df) (1.0, 1.0000000000000002, 0.045311337970735499)
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames)+3), 'Y': np.cos(np.linspace(1, frames, frames)+3)} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> boundedness(df) (0.96037058689895005, 2.9989749477908401, 0.03576118370932313)
-
diff_classifier.features.
calculate_features
(df, framerate=1)[source]¶ Calculates multiple features from input MSD dataset and stores in pandas dataframe.
- df : pandas dataframe
- Output from msd.all_msds2. Must have at a minimum the following columns: Track_ID, Frame, X, Y, and MSDs.
- framerate : int or float64
- Framerate of the input videos from which trajectories were calculated. Required for accurate calculation of some features. Default is 1. Possibly not required. Ignore if performing all calcuations without units.
- di: pandas dataframe
- Contains a row for each trajectory in df. Holds the following features of each trajetory: Track_ID, alpha, D_fit, kurtosis, asymmetry1, asymmetry2, asymmetry3, aspect ratio (AR), elongation, boundedness, fractal dimension (fractal_dim), trappedness, efficiency, straightness, MSD ratio, frames, X, and Y.
See example outputs from individual feature functions.
-
diff_classifier.features.
efficiency
(track)[source]¶ Calculates the efficiency and straitness of the input track
- track : pandas DataFrame
- At a minimum, must contain a Frames and a MSDs column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- eff : numpy.float64
- Efficiency of the input track. Relates the sum of squared step lengths. Based on Helmuth et al. (2007) and defined as: E = |x(N-1)-x(0)|**2/SUM(|x(i) - x(i-1)|**2
- strait : numpy.float64
- Relates the net displacement L to teh sum of step lengths and is defined as: S = |x(N-1)-x(0)|/SUM(|x(i) - x(i-1)|
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> ft.efficiency(df) (9.0, 0.9999999999999999)
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames))+3, 'Y': np.cos(np.linspace(1, frames, frames))+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> ft.efficiency(df) (0.46192924086141945, 0.22655125514290225)
-
diff_classifier.features.
gyration_tensor
(track)[source]¶ Calculates the eigenvalues and eigenvectors of the gyration tensor of the input trajectory.
- track : pandas DataFrame
- At a minimum, must contain an X and Y column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- l1 : numpy.float64
- Dominant eigenvalue of the gyration tensor.
- l2 : numpy.float64
- Secondary eigenvalue of the gyration tensor.
- v1 : 2 x 1 numpy.ndarray of numpy.float64 objects
- Dominant eigenvector of the gyration tensor.
- v2 : 2 x 1 numpy.ndarray of numpy.float64 objects
- Secondary eigenvector of the gyration tensor.
>>> frames = 5 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> gyration_tensor(df) (4.0, 4.4408920985006262e-16, array([ 0.70710678, -0.70710678]), array([ 0.70710678, 0.70710678]))
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames)+3), 'Y': np.cos(np.linspace(1, frames, frames)+3)} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> gyration_tensor(df) (0.53232560128104522, 0.42766829138901619, array([ 0.6020119 , -0.79848711]), array([-0.79848711, -0.6020119 ]))
-
diff_classifier.features.
kurtosis
(track)[source]¶ Calculates the kurtosis of input track.
- track : pandas DataFrame
- At a minimum, must contain an X and Y column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- kurt : numpy.float64
- Kurtosis of the input track. Calculation based on projected 2D positions on the dominant eigenvector of the radius of gyration tensor.
>>> frames = 5 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> kurtosis(df) 2.5147928994082829
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames)+3), 'Y': np.cos(np.linspace(1, frames, frames)+3)} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> kurtosis(df) 1.8515139698652476
-
diff_classifier.features.
minBoundingRect
(df)[source]¶ Calculates the minimum bounding rectangle of an input trajectory.
- df : pandas DataFrame
- At a minimum, must contain an X and Y column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- rot_angle : numpy.float64
- Angle of rotation of the bounding box.
- area : numpy.float64
- Area of the bounding box.
- width : numpy.float64
- Width of the bounding box.
- height : numpy.float64
- Height of the bounding box.
- center_point : 2 x 1 numpy.ndarray of numpy.float64 objects
- Center point of the bounding box.
- corner_points : 4 x 2 numpy.ndarray of numpy.float64 objects
- Corner points of the bounding box.
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> minBoundingRect(df) (-2.3561944901923448, 2.8261664256307952e-14, 12.727922061357855, 2.2204460492503131e-15, array([ 10.5, 8.5]), array([[ 6., 4.], [ 15., 13.], [ 15., 13.], [ 6., 4.]]))
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames))+3, 'Y': np.cos(np.linspace(1, frames, frames))+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> minBoundingRect(df) (0.78318530717958657, 3.6189901131223992, 1.9949899732081091, 1.8140392491811692, array([ 3.02076903, 2.97913884]), array([[ 4.3676025 , 3.04013439], [ 2.95381341, 1.63258851], [ 1.67393557, 2.9181433 ], [ 3.08772466, 4.32568917]]))
Based off of code from the following repo: https://github.com/dbworth/minimum-area-bounding-rectangle/blob/master/python/min_bounding_rect.py
-
diff_classifier.features.
msd_ratio
(track, n1=3, n2=100)[source]¶ Calculates the MSD ratio of the input track at the specified frames.
- track : pandas DataFrame
- At a minimum, must contain a Frames and a MSDs column. The function msd_calc can be used to generate the correctly formatted pd dataframe.
- n1 : int
- First frame at which to calculate the MSD ratio.
- n2 : int
- Last frame at which to calculate the MSD ratio.
- ratio: numpy.float64
- MSD ratio as defined by [MSD(n1)/MSD(n2)] - [n1/n2] where n1 < n2. For Brownian motion, it is 0; for restricted motion it is < 0. For directed motion it is > 0.
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.linspace(1, frames, frames)+5, 'Y': np.linspace(1, frames, frames)+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> ft.msd_ratio(df, 1, 9) -0.18765432098765433
>>> frames = 10 >>> d = {'Frame': np.linspace(1, frames, frames), 'X': np.sin(np.linspace(1, frames, frames))+3, 'Y': np.cos(np.linspace(1, frames, frames))+3} >>> df = pd.DataFrame(data=d) >>> df['MSDs'], df['Gauss'] = msd_calc(df) >>> ft.msd_ratio(df, 1, 9) 0.04053708075268797
-
diff_classifier.features.
unmask_track
(track)[source]¶ Removes empty frames from a track in an MSD pandas dataframe.
- track : pandas Dataframe
- At a minimum, must contain a Frame, Track_ID, X, Y, MSDs, and Gauss column.
- comp_track : pandas Dataframe
- Similar to track, but has all masked components removed.


3D printer web control tool
by IPC Rennes (ST-Microelectronics) August 2015
Links
Command
Axis Control
Temperature Control
Extrusion Control
File Management
Wifi links
WIFI settings page
WIFI status page
WIFI peers page
WIFI remote control page
AT command line
Send the command


--- layout: base title: Electrum ABC ---
Electrum ABC is an open source, fast and secure eCash wallet for Windows, MacOS and Linux. It supports mnemonic seed phrases, hardware wallets, multisig wallets, and importing private keys.
It enables you to verify that your transactions are in the blockchain without downloading the entire blockchain or trusting a centralized server. Anyone can run a backend server for Electrum ABC — no single entity controls the network.
Join the Electrum ABC telegram group to get in contact with developers or to get help from the community.
| Version | Published | Downloads |
| {{ version }} | {{ release.published_at | date: "%Y %b %e" }} |


= untar_data(URLs.PETS)
path
= get_image_files(path/"images")
files
def label_func(f): return f[0].isupper()
= 'cuda:0' if torch.cuda.is_available() else 'cpu'
device
= ImageDataLoaders.from_name_func(path, files, label_func, item_tfms=Resize(64), device=device) dls
Pruning Schedules
Neural Network Pruning usually follows one of the next 3 schedules:
In fasterai, all those 3 schedules can be applied from the same callback. We’ll cover each below
In the SparsifyCallback, there are several parameters to ‘shape’ our pruning schedule: * start_sparsity
: the initial sparsity of our model, generally kept at 0 as after initialization, our weights are generally non-zero. * end_sparsity
: the target sparsity at the end of the training * start_epoch
: we can decide to start pruning right from the beginning or let it train a bit before removing weights. * sched_func
: this is where the general shape of the schedule is specified as it specifies how the sparsity evolves along the training. You can either use a schedule available in fastai our even coming with your own !
We will first train a network without any pruning, which will serve as a baseline.
= cnn_learner(dls, resnet18, metrics=accuracy)
learn
learn.unfreeze()
6) learn.fit_one_cycle(
/home/HubensN/miniconda3/envs/deep/lib/python3.8/site-packages/fastai/vision/learner.py:265: UserWarning: `cnn_learner` has been renamed to `vision_learner` -- please update your code
warn("`cnn_learner` has been renamed to `vision_learner` -- please update your code")
| epoch | train_loss | valid_loss | accuracy | time |
|---|---|---|---|---|
| 0 | 0.703338 | 0.584460 | 0.833559 | 00:08 |
| 1 | 0.409266 | 0.277945 | 0.886333 | 00:07 |
| 2 | 0.272164 | 0.230810 | 0.900541 | 00:07 |
| 3 | 0.171919 | 0.202396 | 0.920162 | 00:07 |
| 4 | 0.095116 | 0.168309 | 0.937754 | 00:07 |
| 5 | 0.055808 | 0.167708 | 0.939107 | 00:07 |
One-Shot Pruning
The simplest way to perform pruning is called One-Shot Pruning. It consists of the following three steps:
- You first need to train a network
- You then need to remove some weights (depending on your criteria, needs,…)
- You fine-tune the remaining weights to recover from the loss of parameters.
With fasterai, this is really easy to do. Let’s illustrate it by an example:
= cnn_learner(dls, resnet18, metrics=accuracy)
learn learn.unfreeze()
In this case, your network needs to be trained before pruning. This training can be done independently from the pruning callback, or simulated by the start_epoch
that will delay the pruning process.
You thus only need to create the Callback with the one_shot
schedule and set the start_epoch
argument, i.e. how many epochs you want to train your network before pruning it.
=SparsifyCallback(sparsity=50, granularity='weight', context='local', criteria=large_final, schedule=one_shot) sp_cb
Let’s start pruningn after 3 epochs and train our model for 6 epochs to have the same total amount of training as before
6, cbs=sp_cb) learn.fit_one_cycle(
Pruning of weight until a sparsity of [50]%
Saving Weights at epoch 0
| epoch | train_loss | valid_loss | accuracy | time |
|---|---|---|---|---|
| 0 | 0.671942 | 0.521863 | 0.809878 | 00:07 |
| 1 | 0.433165 | 0.335386 | 0.868742 | 00:07 |
| 2 | 0.252873 | 0.223187 | 0.906631 | 00:07 |
| 3 | 0.151653 | 0.195924 | 0.922869 | 00:07 |
| 4 | 0.091317 | 0.169764 | 0.929635 | 00:07 |
| 5 | 0.055428 | 0.161210 | 0.934371 | 00:07 |
Sparsity at the end of epoch 0: [0.0]%
Sparsity at the end of epoch 1: [0.0]%
Sparsity at the end of epoch 2: [50.0]%
Sparsity at the end of epoch 3: [50.0]%
Sparsity at the end of epoch 4: [50.0]%
Sparsity at the end of epoch 5: [50.0]%
Final Sparsity: [50]%
Sparsity in Conv2d 2: 50.00%
Sparsity in Conv2d 8: 50.00%
Sparsity in Conv2d 11: 50.00%
Sparsity in Conv2d 14: 50.00%
Sparsity in Conv2d 17: 50.00%
Sparsity in Conv2d 21: 50.00%
Sparsity in Conv2d 24: 50.00%
Sparsity in Conv2d 27: 50.00%
Sparsity in Conv2d 30: 50.00%
Sparsity in Conv2d 33: 50.00%
Sparsity in Conv2d 37: 50.00%
Sparsity in Conv2d 40: 50.00%
Sparsity in Conv2d 43: 50.00%
Sparsity in Conv2d 46: 50.00%
Sparsity in Conv2d 49: 50.00%
Sparsity in Conv2d 53: 50.00%
Sparsity in Conv2d 56: 50.00%
Sparsity in Conv2d 59: 50.00%
Sparsity in Conv2d 62: 50.00%
Sparsity in Conv2d 65: 50.00%
Iterative Pruning
Researchers have come up with a better way to do pruning than pruning all the weigths in once (as in One-Shot Pruning). The idea is to perform several iterations of pruning and fine-tuning and is thus called Iterative Pruning.

- You fine-tune the remaining weights to recover from the loss of parameters.
- Back to step 2.
= cnn_learner(dls, resnet18, metrics=accuracy)
learn learn.unfreeze()
In this case, your network needs to be trained before pruning.
You only need to create the Callback with the iterative
schedule and set the start_epoch
argument, i.e. how many epochs you want to train your network before pruning it.
The iterative
schedules has a n_steps
parameter, i.e. how many iterations of pruning/fine-tuning you want to perform. To modify its value, we can use the partial
function like this:
iterative = partial(iterative, n_steps=5)
=SparsifyCallback(sparsity=50, granularity='weight', context='local', criteria=large_final, schedule=iterative) sp_cb
Let’s start pruningn after 3 epochs and train our model for 6 epochs to have the same total amount of training as before
6, cbs=sp_cb) learn.fit_one_cycle(
Pruning of weight until a sparsity of [50]%
Saving Weights at epoch 0
| epoch | train_loss | valid_loss | accuracy | time |
|---|---|---|---|---|
| 0 | 0.747520 | 0.534082 | 0.823410 | 00:07 |
| 1 | 0.406695 | 0.292009 | 0.876184 | 00:07 |
| 2 | 0.248393 | 0.211495 | 0.912720 | 00:07 |
| 3 | 0.138455 | 0.226409 | 0.912720 | 00:07 |
| 4 | 0.092650 | 0.205549 | 0.926928 | 00:07 |
| 5 | 0.056216 | 0.195934 | 0.931664 | 00:07 |
Sparsity at the end of epoch 0: [0.0]%
Sparsity at the end of epoch 1: [16.67]%
Sparsity at the end of epoch 2: [33.33]%
Sparsity at the end of epoch 3: [33.33]%
Sparsity at the end of epoch 4: [50.0]%
Sparsity at the end of epoch 5: [50.0]%
Final Sparsity: [50.0]%
Sparsity in Conv2d 2: 50.00%
Sparsity in Conv2d 8: 50.00%
Sparsity in Conv2d 11: 50.00%
Sparsity in Conv2d 14: 50.00%
Sparsity in Conv2d 17: 50.00%
Sparsity in Conv2d 21: 50.00%
Sparsity in Conv2d 24: 50.00%
Sparsity in Conv2d 27: 50.00%
Sparsity in Conv2d 30: 50.00%
Sparsity in Conv2d 33: 50.00%
Sparsity in Conv2d 37: 50.00%
Sparsity in Conv2d 40: 50.00%
Sparsity in Conv2d 43: 50.00%
Sparsity in Conv2d 46: 50.00%
Sparsity in Conv2d 49: 50.00%
Sparsity in Conv2d 53: 50.00%
Sparsity in Conv2d 56: 50.00%
Sparsity in Conv2d 59: 50.00%
Sparsity in Conv2d 62: 50.00%
Sparsity in Conv2d 65: 50.00%
Gradual Pruning
Here is for example how to implement the Automated Gradual Pruning schedule.
= cnn_learner(dls, resnet18, metrics=accuracy)
learn learn.unfreeze()
=SparsifyCallback(sparsity=50, granularity='weight', context='local', criteria=large_final, schedule=agp) sp_cb
Let’s start pruning after 3 epochs and train our model for 6 epochs to have the same total amount of training as before
6, cbs=sp_cb) learn.fit_one_cycle(
Pruning of weight until a sparsity of [50]%
Saving Weights at epoch 0
| epoch | train_loss | valid_loss | accuracy | time |
|---|---|---|---|---|
| 0 | 0.675533 | 0.671494 | 0.815291 | 00:07 |
| 1 | 0.414929 | 0.261510 | 0.888363 | 00:07 |
| 2 | 0.261279 | 0.247027 | 0.903924 | 00:07 |
| 3 | 0.151988 | 0.198519 | 0.914750 | 00:07 |
| 4 | 0.088916 | 0.157761 | 0.933694 | 00:07 |
| 5 | 0.043516 | 0.148362 | 0.940460 | 00:07 |
Sparsity at the end of epoch 0: [0.0]%
Sparsity at the end of epoch 1: [21.02]%
Sparsity at the end of epoch 2: [37.79]%
Sparsity at the end of epoch 3: [46.39]%
Sparsity at the end of epoch 4: [49.55]%
Sparsity at the end of epoch 5: [50.0]%
Final Sparsity: [50.0]%
Sparsity in Conv2d 2: 50.00%
Sparsity in Conv2d 8: 50.00%
Sparsity in Conv2d 11: 50.00%
Sparsity in Conv2d 14: 50.00%
Sparsity in Conv2d 17: 50.00%
Sparsity in Conv2d 21: 50.00%
Sparsity in Conv2d 24: 50.00%
Sparsity in Conv2d 27: 50.00%
Sparsity in Conv2d 30: 50.00%
Sparsity in Conv2d 33: 50.00%
Sparsity in Conv2d 37: 50.00%
Sparsity in Conv2d 40: 50.00%
Sparsity in Conv2d 43: 50.00%
Sparsity in Conv2d 46: 50.00%
Sparsity in Conv2d 49: 50.00%
Sparsity in Conv2d 53: 50.00%
Sparsity in Conv2d 56: 50.00%
Sparsity in Conv2d 59: 50.00%
Sparsity in Conv2d 62: 50.00%
Sparsity in Conv2d 65: 50.00%
Even though they are often considered as different pruning methods, those 3 schedules can be captured by the same Callback. Here is how the sparsity in the network evolves for those methods;
Let’s take an example here. Let’s say that we want to train our network for 3 epochs without pruning and then 7 epochs with pruning.
Then this is what our different pruning schedules will look like:
You can also come up with your own pruning schedule !


This intention changes a library method contract.
Method contract has the following syntax:
contract ::= (clause ';')* clause
clause ::= args '->' effect
args ::= ((arg ',')* arg )?
arg ::= value-constraint
value-constraint ::= 'any' | 'null' | '!null' | 'false' | 'true'
effect ::= value-constraint | 'fail' | 'exit'
The constraints denote the following:
- _ - any value
- null - null value
- !null - a value statically proved to be not-null
- true - true boolean value
- false - false boolean value
- fail - the method throws exception, if the arguments satisfy argument constraints
- exit - the method terminates the current process, if the arguments satisfy argument constraints
Examples:
@Contract("_, null -> null")
- method returns null if its second argument is null
@Contract("_, null -> null; _, !null -> !null")
- method returns null if its second argument is null and not-null otherwise
@Contract("true -> fail")
- a typical assertFalse method which throws an exception if true
is passed to it


This is an introduction about the project
This is a the closing paragraph
Agree to our terms of service


Ethereum Improvement Proposals (EIPs)
EIPs
- Standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.
- Design document providing information on Ethereum community,rationale of feature for ethereum and its concise technical specification.
- Author has to gather consensus within community and document dissenting opinions.
EIP Rationale (Why?)
- Required to propose new features, gather input from community and document design decisions that have gone into Ethereum.
- Also to track the progress of implementation by EIP implementers.
EIP classification
- Standard track EIP : (e.g. ERC-20)
- Meta EIP : (e.g. EIP-1)
- Informational EIP : (e.g. EIP-1470)
Standard Track EIP
- A change that affects the interoperability of applications using Ethereum such as change to:
- network protocol
- block or transaction validity rules
- proposed application standards/conventions
Standard track EIP
- Categories of standard track EIPs
- Core (e.g. EIP5, EIP101)
- Networking (e.g. EIP8)
- Interface (e.g. EIP6)
- ERC (e.g. ERC20)
Standard track EIP
- Core
- consensus fork (e.g. EIP5, EIP101)
- no consensus critical change
- "core dev" discussions (e.g. the miner/node strategy changes 2, 3, and 4 of EIP86)
Standard track EIP
- Networking
- devp2p (e.g. EIP8) and light ethereum subprotocol
- whisper and swarm and protocol improvements
Standard track EIP
- Interface
- client API/RPC specifications
- method names and contract ABIs
- The label “interface” aligns with the interfaces repo and discussion occurs in that repository before an EIP is submitted to the EIPs repository.
Standard track EIP
- ERC
- Application-level standards and conventions
- token standards (ERC20), name registries (ERC137), URI schemes (ERC681), library/package formats (EIP190), and wallet formats (EIP85).
Meta EIP
- Procedures and guidelines (Process EIPs)
- No to the Ethereum protocol or codebase
- Require community consensus
- More than recommendations
- Decision-making process
- Changes to the tools or environment.
Informational EIP
- Ethereum design issue
- General guidelines/information to the community
- No new feature proposal nor consensus/recommendation proposals
- Users and implementers are free to ignore.
EIP Work flow
- Sherpherding an EIP
- EIP author : vet your idea (should be original)
- Invite feedback from community (reviewers and editors)
- Leverage interest with implementation as well as attracting parties.
EIP Work Flow
- Core EIPs
- provide client implementation or convince client
- AllCoreDevs call ("rough consensus") : for attracting client implementers to review AllCoreDevs agenda GitHub Issue
EIP Process
```
[ WIP ] -> [ DRAFT ] -> [ LAST CALL ] -> [ FINAL ]
```
EIP Process
```
[ IDEA ] -> [ DRAFT ] -> [ LAST CALL ] -> [ ACCEPTED ] -> [ FINAL ]
```


--- layout: archive title: Zulip Chat Archive permalink: /stream/224796-Geographic-locality/topic/London.2C.20England.html ---
The Xena Project meets every Thursday evening during Imperial's term (early Oct to mid-Dec, early Jan to mid-March, mid-April to end of June) in the maths department at Imperial College London in South Kensington (although if you're not attached to Imperial there will be a few card-only locked doors you'll have to negotiate; ping me).
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Number of Premises:
Check Proof
Key:
Correct
Empty
Badly formed input
Badly formed rule
Invalid line
or: ∨ and: ∙ not: ~ implies: ⊃ biconditional: ≡
or: ^ and: & not: ~ implies: > biconditional: =
Add Statement
Add CP or IP
End current CP or IP
Show/Hide textbox
Parse


(RED) is the color of emergency. Show your support for the movement to eliminate AIDS by turning yourself (RED)!
Wasn't that easy? It's just as easy to join in the movement for an AIDS FREE GENERATION. Buy (RED) from the world's most iconic brands, donate to the Global Fund inspired by (RED), and get INSPI(RED) by learning more.


{% extends "base/base.html" %} {% block title %}Trouble login in?{% endblock %} {% block body %}
Forgot password? Click here.
Email not verified? Click here.


This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text.
Return the vertical position of the scrollbar


JB Hi-Fi Black Friday 2019 sales detailed
by Steve WrightNot to be outdone by Sony, Microsoft or Big W, JB Hi-Fi will also offer its own Black Friday 2019 sale.
Here are all the deals from JB’s latest brochuce, with all prices in Australian dollars.
Consoles, accessories and bundles
- PS4 DualShock controllers: $49
- Xbox One S All Digital Console bundle with Minecraft, Sea of Thieves, Forza Horizon 3: $199
- Xbox One S Console Bundle (Star Wars Jedi Fallen Order or Forza Horizon 4 with Lego Speed Champions): $279
- PS4 1TB Bundle (Uncharted and God of War and Horizon Zero Dawn): $349
- Astro A50 Wireless Gaming Headset: $399
- Nintendo Switch Console and Mario Kart 8 Deluxe: $399
- Xbox One X Console Bundle (Star Wars Jedi Fallen Order or Forza Horizon 4 with Lego Speed Champions Code): $429
Games
- The Division 2: $19
- Kingdom Hearts 3: $24
- Rage 2: $39
- FIFA 20: $39
- Crash Team Racing: $39
- NBA 2K20: $39
- WWE 2K20: $39
- Ghost Recon Breakpoint: $39
- Borderlands 3: $49
- Gears : $49
- Just Dance 2020: $49
- Madden NFL 20: $49
- Need for Speed Heat: $49
- GRID: $49
- The Outer Worlds: $59
- Call of Duty Modern Warfare: $59
Which sales are you keen for? Check out other deals here.
Cheers, Kotaku.


Minnesota at Northwestern: Game Time, Spread, Channel, Announcers
by Chris RosvoglouLast weekend, the Minnesota Golden Gophers suffered their first loss of the season to the Iowa Hawkeyes. Although there’s still an outside chance they make the College Football Playoff, they must be perfect from here on out.
Minnesota was riding high off its statement win over Penn State, before losing against Iowa. Now, all eyes will be on how P.J. Fleck’s team responds to adversity this weekend.
The Golden Gophers still have plenty of reasons to be motivated this Saturday. Not only could they inch closer to winning the Big Ten West, they could win their seventh conference game of the regular season – something the program hasn’t accomplished.
Northwestern has been disappointing this season, but the Wildcats are coming off a win over the UMass Minutemen.
Judging off the current betting line, oddsmakers aren’t expecting an upset in Evanston, Illinois.
Here are the details for the Minnesota-Northwestern game:
Game Time: 12:00 p.m. ET
Channel: ABC
Spread: Minnesota -13.5
Over/Under: 39.5
Announcers:Bob Wischusen, Dan Orlovsky
This game is extremely important for Minnesota to prove to the rest of college football that it’s a legitimate threat in the Big Ten.
With a marquee matchup against Wisconsin looming large next weekend, it’s imperative that Minnesota isn’t caught looked ahead.


Open this database account in a new browser tab with Cosmos DB Explorer. Or copy the read-write or read
only access urls below to share with others. For security purposes, the URLs grant time-bound access to
the account. When access expires, you can reconnect, using a valid connection string for the
account.
Read-Write
Read
Welcome to Azure Cosmos DB
Connect to your account with connection string
Welcome to Azure Cosmos DB
Connecting...
Please reconnect to the account using the connection string.
Please save your work before you switch! When you switch to a different Azure Cosmos DB account, current
Data Explorer tabs will be closed.


Simple Interest Calculator
Amount
Rate
No. of Years
One
Two
Three
four
five
six
seven
eight
nine
Ten
Interest :
Compute


How To Order
Men Suits
Women Dresses
Shoes And Accessories
Filter
Show all
color
with bride veil
dress1
100
add cart
dress2
200
add cart
dress3
300
add cart
dress4
400
add cart


Let me start by saying that I was rather excited to be legally given a sample bottle of lyrica by my doctor, the new wonder drug that supposedly feels like GHB, MDMA, and some type of painkiller feeling. I was rather excited by the thought of such a wonderful drug, but I was truely skeptical. I knew I had to try it to make an informed descision, so here I am.
10:00 pm: 700 mg of pregabalin was ingested. I was truely excited to try this drug hoping that it would be differant than neurontin.
10:30 pm: woah... I am starting to feel a slight benzo like buzz, best thing I could compare this to right now would be alprazolam. I am starting to think this may be something worth my time.
11:00 pm: I have been getting higher and higher since the 30 minute mark. The benzo like feeling has faded and I now feel an absolutly electric sence of touch, everything I touch feels like the most incredible texture ever, especially my hair. The feeling is comparable to MDMA, with the slight sedation brought on by GHB. This is absolutly wonderful!!
12:30 pm: This is really quite incredible the feeling has certainly peaked. I feel an intense euphoria with a slight opioid like body buzz. I am thinking this drug is going to be the next big thing it is only a matter of time before the CV is raised. This drug makes benzos look like childs candy and it somehow is on a lower schedule.
I am enjoying this feeling so much I am going to have to stop this report. This feeling has stayed with me for more than four hours and has not declined in the least. This is probably my new drug of choice. To anybody doubting the effectiveness of this drug trust me when I say this works. I have done just about every common drug there is, and a good deal of rare types, so I know when something is working. good luck and stay safe.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Before Change
// that does not rely on the particular implementation"s storage
// mechanism. Here is one way.
//
outcomes = list(self.sample_space())
zero = self.ops.zero
probs = [zero] * len(outcomes)
_outcomes = self.outcomes
_pmf = self.pmf
i, j = 0, 0
while j < len(_pmf):
if outcomes[i] == _outcomes[j]:
probs[i] = _pmf[j]
j += 1
i += 1
else:
outcomes = self.outcomes
probs = self.pmf
return izip(outcomes, probs)
////// We choose to implement only scalar multiplication and distribution
After Change
raise ditException("Invalid mode.")
if mode == "pmf":
for x in izip(self.outcomes, self.pmf):
yield x
elif mode == "atoms":
// Then we want to iterate over the sample space.
//
// There are many ways to do this, but we need to do it in a way


Maria's website
This is my website
Click on a llink to visit a page:
About Me
My favourite Books>
My Family
MyPets
Songs
Movie


Jeremiah 25:16
And they shall drink, and be moved, and be mad, because of the sword that I will send among them.


This application doesn't have any Agreement installed
Name: {{agreement.name}}
Service Provider: {{agreement.context.serviceProvider}}
Status: {{agreementStatus.guaranteestatus}}
Expiration Time:
{{agreement.context.expirationTime | date}}
No expiration date
Guaranteed Terms
Status: {{term.status}}
Constrain: {{getSlaTermConstrain()}}
QoS: {{getSlaTermQoS()}}
Violations
|
ID
|
Date
|
Value
|
|
{{violation.uuid}}
|
{{violation.datetime}}
|
{{violation.actual_value}}
|
Penalties
|
Date
|
Value
|
|
{{penalty.datetime}}
|
{{penalty.definition}}
|
View RAW Agreement


Log authentication events.
Logging authentication events helps detect suspicious behavior, such as an attacker trying to guess passwords.
All systems that implement user authentication should log authentication events.
Perform the following actions to assure that your application logs authentication events:
Identify authentication events. Make a list of authentication events that may occur when using your application. Typical authentication events include:
Identify code that is used for authentication. Use the list of authentication events to find functions that are responsible for those events.
Identify the logging subsystem. The logging subsystem should provide an API that allows generating log entries from application code. If this API or the logging subsystems don't exist, write them. Make a list of functions that may be used to generate log entries and collect documentation about how to use them.
Add code that generates log entries. Use the list of functions that perform authentication and add code to each one to generate log entries. Generate log entries for both successful and failed events. Use the list of functions in the logging subsystem when adding code that generates log entries.
Adapted from Microsoft patterns & practices guidance.


The First Heading
Here is some demo text.
The bad Heading
Here is some more demo text.
The First Heading
Here is some demo text.
This Heading Is OK
Here is some more demo text.


| 1115 | (A) | Bot alle was butles bale for he þat brede hade |
| 1119 | (C) | ¶ But ałł was boteles bale . for who þat brede hadde |
| 1101 | (D) | But al was boteles bale for who-so brede had |
| 1082 | (E) | ¶ But al was booteles bale . for so breed hadde |
| (Ex) | ---- no text ---- | |
| 1139 | (L) | bot alle was boteles bale fro who so bred hadde |
| (P) | ---- no text ---- | |
| 1091 | (U) | ¶ But al was boteles wo / for who that brede had |
| 180 | (V) | But ałł was botles bale . for who-so brede hadde |


|
OpenM++ runtime library (libopenm)
|
public interface for message passing More...
Public Member Functions | |
| virtual | ~IMsgExec (void) noexcept=0 |
| cleanup message passing resources. | |
| bool | isRoot (void) const |
| if root process then true (root process rank == 0) | |
| virtual int | worldSize (void) const =0 |
| return total number of processes in world communicator. | |
| virtual int | rank (void) const =0 |
| return current process rank. | |
| virtual int | groupRank (void) const =0 |
| return rank in modeling group. | |
| virtual void | setCleanExit (bool i_isClean=false)=0 |
| set clean exit flag for normal shutdown of message passing interface. | |
| virtual void | createGroups (int i_groupSize, int i_groupCount)=0 |
| create groups for parallel run of modeling task. More... | |
| virtual void | bcastValue (int i_groupOne, const type_info &i_type, void *io_value)=0 |
| broadcast value from root to all other processes. More... | |
| void | bcastInt (int i_groupOne, void *io_value) |
| broadcast integer value from root to all other processes. More... | |
| virtual void | bcastSend (int i_groupOne, const type_info &i_type, size_t i_size, void *io_valueArr)=0 |
| send broadcast value array from root to all other processes. More... | |
| virtual void | bcastReceive (int i_groupOne, const type_info &i_type, size_t i_size, void *io_valueArr)=0 |
| receive broadcasted value array from root process. More... | |
| virtual void | bcastSendPacked (int i_groupOne, IRowBaseVec &io_rowVec, const IPackedAdapter &i_adapter)=0 |
| send broadcast vector of db rows from root to all other processes. More... | |
| virtual void | bcastReceivePacked (int i_groupOne, IRowBaseVec &io_rowVec, const IPackedAdapter &i_adapter)=0 |
| receive broadcasted vector of db rows from root. More... | |
| virtual void | startSend (int i_sendTo, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *i_valueArr)=0 |
| start non-blocking send of value array to i_sendTo process. More... | |
| virtual void | startSendPacked (int i_sendTo, const IRowBaseVec &i_rowVec, const IPackedAdapter &i_adapter)=0 |
| pack and start non-blocking send of vector of db rows to i_sendTo process. More... | |
| virtual bool | tryReceive (int i_recvFrom, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *io_valueArr) const =0 |
| try to non-blocking receive value array, return true if completed. More... | |
| virtual bool | tryReceive (int i_recvFrom, IRowBaseVec &io_resultRowVec, const IPackedAdapter &i_adapter) const =0 |
| try to non-blocking receive and unpack vector of db rows, return true if completed. More... | |
| virtual void | waitSendAll (void)=0 |
| wait for non-blocking send to be completed | |
Static Public Member Functions | |
| static IMsgExec * | create (int argc, char **argv, IFinalState *i_final) |
| create new message passing interface. More... | |
Static Public Attributes | |
| static const int | rootRank = 0 |
| root process rank, always zero | |
public interface for message passing
|
inline |
broadcast integer value from root to all other processes.
| [in] | i_groupOne | if zero then worldwide else one-based group number |
| [in,out] | io_value | integer value to send or output value to receive |
|
pure virtual |
receive broadcasted value array from root process.
| [in] | i_groupOne | if zero then worldwide else one-based group number |
| [in] | i_type | value type |
| [in] | i_size | size of array |
| [in,out] | io_valueArr | value array to send or output buffer to receive |
Implemented in openm::MsgEmptyExec, and openm::MpiExec.
|
pure virtual |
receive broadcasted vector of db rows from root.
| [in] | i_groupOne | if zero then worldwide else one-based group number |
| [in,out] | io_rowVec | vector of db rows to send or vector to push back received db rows |
| [in] | i_adapter | adapter to pack and unpack db rows |
Implemented in openm::MsgEmptyExec, and openm::MpiExec.
|
pure virtual |
send broadcast value array from root to all other processes.
| [in] | i_groupOne | if zero then worldwide else one-based group number |
| [in] | i_type | value type |
| [in] | i_size | size of array |
| [in,out] | io_valueArr | value array to send or output buffer to receive |
Implemented in openm::MsgEmptyExec, and openm::MpiExec.
|
pure virtual |
send broadcast vector of db rows from root to all other processes.
| [in] | i_groupOne | if zero then worldwide else one-based group number |
| [in,out] | io_rowVec | vector of db rows to send or vector to push back received db rows |
| [in] | i_adapter | adapter to pack and unpack db rows |
Implemented in openm::MsgEmptyExec, and openm::MpiExec.
|
pure virtual |
broadcast value from root to all other processes.
| [in] | i_groupOne | if zero then worldwide else one-based group number |
| [in] | i_type | value type |
| [in,out] | io_value | value to send or output value to receive |
Implemented in openm::MsgEmptyExec, and openm::MpiExec.
|
static |
create new message passing interface.
| [in] | argc | main argc to pass to MPI_Init |
| [in] | argv | main argv to pass to MPI_Init |
| [in] | i_final | final model run state interface |
|
pure virtual |
create groups for parallel run of modeling task.
| [in] | i_groupSize | number of processes in each group |
| [in] | i_groupCount | number of groups |
Implemented in openm::MsgEmptyExec, and openm::MpiExec.
|
pure virtual |
start non-blocking send of value array to i_sendTo process.
| [in] | i_sendTo | receiver proccess rank |
| [in] | i_msgTag | tag to identify message content (parameter or output data) |
| [in] | i_type | value type |
| [in] | i_size | size of array |
| [in] | i_valueArr | value array to send |
Implemented in openm::MpiExec, and openm::MsgEmptyExec.
|
pure virtual |
pack and start non-blocking send of vector of db rows to i_sendTo process.
| [in] | i_sendTo | receiver proccess rank |
| [in] | i_rowVec | vector of db rows to send |
| [in] | i_adapter | adapter to pack db rows |
Implemented in openm::MpiExec, and openm::MsgEmptyExec.
|
pure virtual |
try to non-blocking receive and unpack vector of db rows, return true if completed.
| [in] | i_recvFrom | sender proccess rank |
| [in,out] | io_resultRowVec | vector to push back received db rows |
| [in] | i_adapter | adapter to unpack db rows |
Implemented in openm::MpiExec, and openm::MsgEmptyExec.
|
pure virtual |
try to non-blocking receive value array, return true if completed.
| [in] | i_recvFrom | sender proccess rank |
| [in] | i_msgTag | tag to identify message content (parameter or output data) |
| [in] | i_type | value type |
| [in] | i_size | size of array |
| [in,out] | io_valueArr | allocated buffer to recieve value array |
Implemented in openm::MpiExec, and openm::MsgEmptyExec.


2 Samuel 6:6
And when they came to Nachon's threshingfloor, Uzzah put forth his hand to the ark of God, and took hold of it; for the oxen shook it.


By Bruce Changlong Xu
在狭义相对论的理论之中，我们通常会把时间当成一种典型的参数。虽然日常 生活跟理论物理的世界差异不少，我还是觉的这种对待时间的态度非常健康。特别在 忙碌之中，很容易让每天的小烦恼挡住我们的大图思维。其实，每个人生路程是独特的，因此我们只能渐渐旳把今天的事情踏踏实实的做好，希望明天能够做得更好。无 论遇到多种困难，从 A 点到 B 点都会有可穿越的路径。
In special relativity, it is typical to view time as an index parameter to be summed over on equal footing as the x, y, z or however many dimensions that we are working in. In my opinion, this shouldn’t be restricted to the confines of theoretical physics but should be widely adopted as a way of tackling and modelling the twists and turns of life. It’s very easy to get caught up in “bubbles” where real world constraints can get in the way of managing our energies effectively; In times like this it’s beneficial to use local information to patch together a global image of how to parameterize a trajectory most efficiently over our current landscape. Indeed, encountering cusps or regions of pathological undifferentiability might seem impenetrable at first, but in a simply connected space there will always be a path from A to B.
More importantly, having time as an extra parameter in our life provides us with the flexibility to choose not only where and how, but when. We often set arbitrary parameters for ourselves to achieve certain milestones at certain ages, but these are well, arbitrary. Of course, to accomplish anything in life requires some sort of time-pressure, but there is no reason why we can’t take advantage of the fact that even though it marches ever forward, time is malleable. I can decide to eat dinner an hour later today to finish a piece of work that I am currently immensely inspired to work on, which won’t necessarily be the case after I eat dinner. So long as all necessary tasks are accomplished within a reasonable time frame (for example, eating at some point soon so that I don’t starve to death), we have immense power over how we choose to let the parameter of time govern our lives.
Really what I wanted to emphasize is that time is on your side. There will always be time to do the things you really want to do, and to do the things you believe in, so long as you make time for it. There is no reason to be constrained simply by the way your friends and family work with time, your own relationship with time is truly unique. As with any relationship, you want to treasure it – there is no good reason to “kill time”, or to say that “there is not enough time”, that’s like killing a friendship or saying that your relationship is insufficient to satisfy your needs. For things to work out, both sides need to put in the effort, and time truly never fails to meet your needs when you really try. So, will you try fruitlessly to control time, passively let it control you – or reverentially befriend it?


Monroe County Man Found Dead
From the: Times Leader, Martins Ferry, Ohio, Thursday,
January 16, 2003
THE
MONROE County Sheriff's Office is awaiting results of an autopsy on a Monroe County
man whose body was found near his Lewisville home Wednesday morning. "There are not signs of foul play at
this point," according to Monroe County Sheriff's Capt. Curtis Shreves. Information from the sheriff's office
reveals that the body of Jim Criswell, 50, 50615 TR 15, Lewisville, was found
Wednesday at 9:47 a.m. following a search of the wooded area around Criswell's
home.
Criswell was reported missing Monday by his sister, who told deputies that no
one had seen her brother since Jan. 8. She said when she'd been at Criswell's
home Jan. 9, the television was on and Criswell's car was in the driveway. When she returned on Monday, she said,
everything was still the same. An
officer from the sheriff's department went to the Criswell home but was unable
to make contact, according to the sheriff's department. Sheriff's deputies
searched the wooded area near Criswell's home Tuesday and checked with
Criswell's neighbors but were unable to locate Criswell.
Early Wednesday morning, deputies from the sheriff's office, Monroe County
Mounted Search & Rescue, Monroe County Emergency Operations Center, K-9
units from Belmont and Tuscarawas County and volunteers searched the area
surrounding Criswell's home once again.
Criswell's body was found about 300 yards from his home in a wooded
area.
According to the sheriff's office, the Monroe County coroner was called to the
scene and ordered an autopsy, which will be performed in Licking County. Capt. Shreves said preliminary indications
point to exposure as a contributing factor.
Click here for the Short-Cut Table of Contents


Herbie allows plugins to define additional functions, rewrite rules, and even number representations. Plugins are be separately installed. Once installed, Herbie automatically loads and uses them.
The softposit-herbie plugin implements support for posit arithmetic. Install it with:
raco pkg install --auto softposit-herbie
Note that this plugin uses the SoftPosit library, which only
supports Linux platforms, and even then is reported to misbehave on
some machines. The only supported operations are the arithmetic
operators and sqrt
. Quires are supported, though we
expect the syntax for this to change.
Once softposit-herbie is installed,
specify :precision posit16
to inform Herbie that it
should assume the core's inputs and outputs are posit numbers. Other
posit sizes (from 8 to 128 bits) and also quires (for 8, 16, and 32
bits) are available, but are poorly supported.
The complex-herbie includes experimental support for complex numbers; however, this support is currently limited to a few basic operations. Install it with:
raco pkg install --auto complex-herbie
All input parameters to an FPCore are real numbers; complex
numbers must be constructed with complex
. The
functions re
, im
, and conj
are available on complex numbers, along with the arithmetic
operators, exp
, log
, pow
,
and sqrt
. Complex and real operations use the same
syntax, but cannot be mixed: (+ (complex 1 2) 1)
is not
valid. Herbie reports type errors in such situations.
Complex operations use the Racket implementation, so results may differ (slightly) from complex numbers in some other language, especially for non-finite complex numbers. Unfortunately, complex number arithmetic is not as standardized as float-point arithmetic.
In the future, we hope to support complex-number arguments and fully support all complex-number operations.
The plugin functionality is currently highly experimental; if you would like to develop your own plugins, please write to the mailing list.


| Author | Title | Year | Journal/Proceedings/Institution | BibTeX type | URL |
|---|---|---|---|---|---|
| P. Magron & C. Févotte | Neural content-aware collaborative filtering for cold-start music recommendation [BibTeX] |
2022 | Data Mining and Knowledge Discovery | article | [PDF] [DOI] |
BibTeX:
@article{Magron2022, author = {Magron, P. and Févotte, C.} , title = {Neural content-aware collaborative filtering for cold-start music recommendation}, journal = {Data Mining and Knowledge Discovery}, year = {2022}, url = {https://arxiv.org/abs/2102.12369}, doi = {https://doi.org/10.1007/s10618-022-00859-8} } |
|||||
| P. Magron & C. Févotte | A majorization-minimization algorithm for nonnegative binary matrix factorization [BibTeX] |
2022 | IEEE Signal Processing Letters | article | [PDF] [DOI] |
BibTeX:
@article{Magron2022, author = {Magron, P. and Févotte, C.} , title = {A majorization-minimization algorithm for nonnegative binary matrix factorization}, journal = {IEEE Signal Processing Letters}, year = {2022}, volume = {29}, pages = {1526--1530}, url = {https://arxiv.org/abs/2204.09741}, doi = {https://doi.org/10.1109/LSP.2022.3187368} } |
|||||
| P.-H. Vial, P. Magron, T. Oberlin & C. Févotte | Learning the proximity operator in unfolded ADMM for phase retrieval [BibTeX] |
2022 | IEEE Signal Processing Letters | article | [PDF] [DOI] |
BibTeX:
@article{Vial2022, author = {P.-H. Vial and P. Magron and T. Oberlin and C. Févotte} , title = {Learning the proximity operator in unfolded ADMM for phase retrieval}, journal = {IEEE Signal Processing Letters}, year = {2022}, volume = {29}, pages = {1619--1623}, url = {https://arxiv.org/abs/2204.01360}, doi = {https://doi.org/10.1109/LSP.2022.3189275} } |
|||||
| S. Zhang, E. Soubies & C. Févotte | Leveraging joint-diagonalization in transform-learning NMF [BibTeX] |
2022 | IEEE Transactions on Signal Processing | article | [PDF] [DOI] |
BibTeX:
@article{Zhang2022, author = {S. Zhang and E. Soubies and C. Févotte} , title = {Leveraging joint-diagonalization in transform-learning NMF}, journal = {IEEE Transactions on Signal Processing}, year = {2022}, volume = {70}, pages = {3802--3817}, url = {https://arxiv.org/abs/2112.05664}, doi = {https://doi.org/10.1109/TSP.2022.3188177} } |
|||||
| C. Castera, J. Bolte, C. Févotte & E. Pauwels | Second-order step-size tuning of SGD for non-convex optimization [BibTeX] |
2022 | Neural Processing Letters | article | [PDF] |
BibTeX:
@article{Castera2022, author = {Castera, C. and Bolte, J. and Févotte, C. and Pauwels, E.} , title = {Second-order step-size tuning of SGD for non-convex optimization}, journal = {Neural Processing Letters}, year = {2022}, volume = {54}, number = {3}, pages = {1727--1752}, url = {https://arxiv.org/pdf/2103.03570} } |
|||||
| V. Leplat, N. Gillis & C. Févotte | Multi-resolution beta-divergence NMF for blind spectral unmixing [BibTeX] |
2022 | Signal Processing | article | [PDF] [DOI] |
BibTeX:
@article{Leplat2022, author = {V. Leplat and N. Gillis and C. Févotte} , title = {Multi-resolution beta-divergence NMF for blind spectral unmixing}, journal = {Signal Processing}, year = {2022}, volume = {193}, pages = {108428}, url = {https://arxiv.org/pdf/2007.03893}, doi = {https://doi.org/10.1016/j.sigpro.2021.108428} } |
|||||
| A. Marmin, J.H. de M. Goulart & C. Févotte | Majorization-minimization for sparse nonnegative matrix factorization with the beta-divergence [BibTeX] |
2022 | arXiv | techreport | [PDF] |
BibTeX:
@techreport{Marmin2022, author = {Marmin, A. and Goulart, J. H. de M. and Févotte, C.} , title = {Majorization-minimization for sparse nonnegative matrix factorization with the beta-divergence}, institution = {arXiv}, year = {2022}, url = {https://arxiv.org/abs/2207.06316} } |
|||||
| O. Mokrý, P. Magron, T. Oberlin & C. Févotte | Algorithms for audio inpainting based on probabilistic nonnegative matrix factorization [BibTeX] |
2022 | arXiv | techreport | [PDF] |
BibTeX:
@techreport{Mokry2022, author = {Mokrý, O. and Magron, P. and Oberlin, T. and Févotte, C.} , title = {Algorithms for audio inpainting based on probabilistic nonnegative matrix factorization}, institution = {arXiv}, year = {2022}, url = {https://arxiv.org/abs/2206.13768} } |
|||||
| P.-H. Vial, P. Magron, T. Oberlin & C. Févotte | Phase retrieval with Bregman divergences and application to audio signal recovery [BibTeX] |
2021 | IEEE Journal of Selected Topics in Signal Processing | article | [PDF] [DOI] |
BibTeX:
@article{Vial2021, author = {P.-H. Vial and P. Magron and T. Oberlin and C. Févotte} , title = {Phase retrieval with Bregman divergences and application to audio signal recovery}, journal = {IEEE Journal of Selected Topics in Signal Processing}, year = {2021}, volume = {15}, number = {1}, pages = {51--64}, url = {https://arxiv.org/pdf/2010.00392}, doi = {https://doi.org/10.1109/JSTSP.2021.3051870} } |
|||||
| T. Cai, V.Y.F. Tan & C. Févotte | Adversarially-trained nonnegative matrix factorization [BibTeX] |
2021 | IEEE Signal Processing Letters | article | [PDF] [DOI] |
BibTeX:
@article{Cai2021, author = {Cai, T. and Tan, V. Y. F. and Févotte, C.} , title = {Adversarially-trained nonnegative matrix factorization}, journal = {IEEE Signal Processing Letters}, year = {2021}, volume = {28}, pages = {1415--1419}, url = {https://arxiv.org/pdf/2104.04757}, doi = {https://doi.org/10.1109/LSP.2021.3092231} } |
|||||
| L. Filstroff, O. Gouvert, C. Févotte & O. Cappé | A comparative study of Gamma Markov chains for temporal non-negative factorization [BibTeX] |
2021 | IEEE Transactions on Signal Processing | article | [PDF] [DOI] |
BibTeX:
@article{Filstroff2021, author = {L. Filstroff and O. Gouvert and C. Févotte and O. Cappé} , title = {A comparative study of Gamma Markov chains for temporal non-negative factorization}, journal = {IEEE Transactions on Signal Processing}, year = {2021}, volume = {69}, pages = {1614--1626}, url = {https://arxiv.org/pdf/2006.12843}, doi = {https://doi.org/10.1109/TSP.2021.3060000} } |
|||||
| D. Lahat, Y. Lang, V.Y.F. Tan & C. Févotte | Positive semidefinite matrix factorization: A connection with phase retrieval and affine rank minimization [BibTeX] |
2021 | IEEE Transactions on Signal Processing | article | [PDF] [DOI] |
BibTeX:
@article{Lahat2021, author = {D. Lahat and Y. Lang and V. Y. F. Tan and C. Févotte} , title = {Positive semidefinite matrix factorization: A connection with phase retrieval and affine rank minimization}, journal = {IEEE Transactions on Signal Processing}, year = {2021}, volume = {69}, pages = {3059--3074}, url = {https://arxiv.org/pdf/2007.12364}, doi = {https://doi.org/10.1109/TSP.2021.3071293} } |
|||||
| C. Castera, J. Bolte, C. Févotte & E. Pauwels | An inertial Newton algorithm for deep learning [BibTeX] |
2021 | Journal of Machine Learning Research | article | [PDF] |
BibTeX:
@article{Castera2021, author = {C. Castera and J. Bolte and C. Févotte and E. Pauwels} , title = {An inertial Newton algorithm for deep learning}, journal = {Journal of Machine Learning Research}, year = {2021}, volume = {22}, number = {134}, pages = {1-31}, url = {https://www.jmlr.org/papers/volume22/19-1024/19-1024.pdf} } |
|||||
| C. Dantas, E. Soubies & C. Févotte | Expanding boundaries of Gap Safe screening [BibTeX] |
2021 | Journal of Machine Learning Research | article | [PDF] |
BibTeX:
@article{Dantas2021a, author = {Dantas, C. and Soubies, E. and Févotte, C.} , title = {Expanding boundaries of Gap Safe screening}, journal = {Journal of Machine Learning Research}, year = {2021}, volume = {22}, number = {236}, pages = {1--57}, url = {https://www.jmlr.org/papers/volume22/21-0179/21-0179.pdf} } |
|||||
| L. Chapel, R. Flamary, H. Wu, C. Févotte & G. Gasso | Unbalanced optimal transport through non-negative penalized linear regression [BibTeX] |
2021 | Advances in Neural Information Processing Systems (NeurIPS) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Chapel2021, author = {L. Chapel and R. Flamary and H. Wu and C. Févotte and G. Gasso} , title = {Unbalanced optimal transport through non-negative penalized linear regression}, booktitle = {Advances in Neural Information Processing Systems (NeurIPS)}, year = {2021}, url = {https://arxiv.org/pdf/2106.04145} } |
|||||
| C. Dantas, E. Soubies & C. Févotte | Safe screening for sparse regression with the Kullback-Leibler divergence [BibTeX] |
2021 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Dantas2021, author = {C. Dantas and E. Soubies and C. Févotte} , title = {Safe screening for sparse regression with the Kullback-Leibler divergence}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {June}, year = {2021}, url = {https://hal.archives-ouvertes.fr/hal-03147345/document} } |
|||||
| P. Magron & C. Févotte | Leveraging the structure of musical preference in content-aware music recommendation [BibTeX] |
2021 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Magron2021, author = {P. Magron and C. Févotte} , title = {Leveraging the structure of musical preference in content-aware music recommendation}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {June}, year = {2021}, url = {https://arxiv.org/pdf/2010.10276} } |
|||||
| P. Magron, P.-H. Vial, T. Oberlin & C. Févotte | Phase recovery with Bregman divergences for audio source separation [BibTeX] |
2021 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Magron2021a, author = {Magron, P. and Vial, P.-H. and Oberlin, T. and Févotte, C.} , title = {Phase recovery with Bregman divergences for audio source separation}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {June}, year = {2021}, url = {https://arxiv.org/pdf/2010.10255} } |
|||||
| A. Marmin, J.H. de M. Goulart & C. Févotte | Joint majorization-minimization for nonnegative matrix factorization with the beta-divergence [BibTeX] |
2021 | arXiv | techreport | [PDF] |
BibTeX:
@techreport{Marmin2021, author = {Marmin, A. and Goulart, J. H. de M. and Févotte, C.} , title = {Joint majorization-minimization for nonnegative matrix factorization with the beta-divergence}, institution = {arXiv}, month = {June}, year = {2021}, url = {https://arxiv.org/pdf/2106.15214} } |
|||||
| A. Lumbreras, L. Filstroff & C. Févotte | Bayesian mean-parameterized nonnegative binary matrix factorization [BibTeX] |
2020 | Data Mining and Knowledge Discovery | article | [PDF] [DOI] |
BibTeX:
@article{Lumbreras2020, author = {A. Lumbreras and L. Filstroff and C. Févotte} , title = {Bayesian mean-parameterized nonnegative binary matrix factorization}, journal = {Data Mining and Knowledge Discovery}, month = {Nov.}, year = {2020}, volume = {34}, number = {6}, pages = {1898--1935}, url = {https://arxiv.org/pdf/1812.06866}, doi = {https://doi.org/10.1007/s10618-020-00712-w} } |
|||||
| O. Gouvert, T. Oberlin & C. Févotte | Negative binomial matrix factorization [BibTeX] |
2020 | IEEE Signal Processing Letters | article | [PDF] [DOI] |
BibTeX:
@article{Gouvert2020, author = {O. Gouvert and T. Oberlin and C. Févotte} , title = {Negative binomial matrix factorization}, journal = {IEEE Signal Processing Letters}, month = {Dec.}, year = {2020}, volume = {27}, pages = {815-819}, url = {https://hal.archives-ouvertes.fr/hal-02871905/document}, doi = {https://doi.org/10.1109/LSP.2020.2991613} } |
|||||
| S. Zhang, E. Soubies & C. Févotte | On the identifiability of transform learning for non-negative matrix factorization [BibTeX] |
2020 | IEEE Signal Processing Letters | article | [PDF] [DOI] |
BibTeX:
@article{Zhang2020, author = {S. Zhang and E. Soubies and C. Févotte} , title = {On the identifiability of transform learning for non-negative matrix factorization}, journal = {IEEE Signal Processing Letters}, month = {Aug.}, year = {2020}, volume = {27}, pages = {1555--1559}, url = {https://hal.archives-ouvertes.fr/hal-02542653v3/document}, doi = {https://doi.org/10.1109/LSP.2020.3020431} } |
|||||
| M. Devy, F. Lerasle, N. Dobigeon & C. Févotte | Perception et apprentissage de représentations [BibTeX] |
2020 | Intelligence artificielle - Regards croisés de chercheur.es | incollection | |
BibTeX:
@incollection{Devy2020, author = {Devy, M. and Lerasle, F. and Dobigeon, N. and Févotte, C.} , title = {Perception et apprentissage de représentations}, booktitle = {Intelligence artificielle - Regards croisés de chercheur.es}, publisher = {La Dépêche; CNRS}, year = {2020} } |
|||||
| O. Gouvert, T. Oberlin & C. Févotte | Ordinal non-negative matrix factorization for recommendation [BibTeX] |
2020 | Proc. International Conference on Machine Learning (ICML) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Gouvert2020a, author = {O. Gouvert and T. Oberlin and C. Févotte} , title = {Ordinal non-negative matrix factorization for recommendation}, booktitle = {Proc. International Conference on Machine Learning (ICML)}, month = {July}, year = {2020}, url = {https://arxiv.org/pdf/2006.01034} } |
|||||
| D. Lahat & C. Févotte | Positive semidefinite matrix factorization based on truncated Wirtinger flow [BibTeX] |
2020 | Proc. European Signal Processing Conference (EUSIPCO) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Lahat2020, author = {D. Lahat and C. Févotte} , title = {Positive semidefinite matrix factorization based on truncated Wirtinger flow}, booktitle = {Proc. European Signal Processing Conference (EUSIPCO)}, year = {2020}, url = {https://hal.archives-ouvertes.fr/hal-02886419/document} } |
|||||
| D. Lahat & C. Févotte | Positive semidefinite matrix factorization: link to phase retrieval and a block gradient algorithm [BibTeX] |
2020 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] [DOI] |
BibTeX:
@inproceedings{Lahat2020, author = {D. Lahat and C. Févotte} , title = {Positive semidefinite matrix factorization: link to phase retrieval and a block gradient algorithm}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {May}, year = {2020}, url = {https://hal.archives-ouvertes.fr/hal-02875241/document}, doi = {https://doi.org/10.1109/ICASSP40776.2020.9053938} } |
|||||
| Y.C. Cavalcanti, T. Oberlin, N. Dobigeon, C. Févotte, S. Stute, M. Ribeiro & C. Tauber | Factor analysis of dynamic PET images: Beyond Gaussian noise [BibTeX] |
2019 | IEEE Transactions on Medical Imaging | article | [PDF] [DOI] |
BibTeX:
@article{Cavalcanti2019, author = {Y. C. Cavalcanti and T. Oberlin and N. Dobigeon and C. Févotte and S. Stute and M. Ribeiro and C. Tauber} , title = {Factor analysis of dynamic PET images: Beyond Gaussian noise}, journal = {IEEE Transactions on Medical Imaging}, month = {Sep.}, year = {2019}, volume = {38}, number = {9}, pages = {2231--2241}, url = {https://arxiv.org/pdf/1807.11455}, doi = {https://doi.org/10.1109/TMI.2019.2906828} } |
|||||
| P. Ablin, D. Fagot, H. Wendt, A. Gramfort & C. Févotte | A quasi-Newton algorithm on the orthogonal manifold for NMF with transform learning [BibTeX] |
2019 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] [CODE] |
BibTeX:
@inproceedings{Ablin2019, author = {P. Ablin and D. Fagot and H. Wendt and A. Gramfort and C. Févotte} , title = {A quasi-Newton algorithm on the orthogonal manifold for NMF with transform learning}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {May}, year = {2019}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/icassp2019b.pdf} } |
|||||
| C. Castera, J. Bolte, C. Févotte & E. Pauwels | An inertial Newton algorithm for deep learning [BibTeX] |
2019 | Proc. NeurIPS Workshop ``Beyond First Order Methods in ML" | inproceedings | [PDF] |
BibTeX:
@inproceedings{Castera2019, author = {C. Castera and J. Bolte and C. Févotte and E. Pauwels} , title = {An inertial Newton algorithm for deep learning}, booktitle = {Proc. NeurIPS Workshop ``Beyond First Order Methods in ML"}, month = {Dec.}, year = {2019}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/beyondFO2019.pdf} } |
|||||
| Y.C. Cavalcanti, T. Oberlin, N. Dobigeon, C. Févotte, S. Stute & C. Tauber | Unmixing dynamic PET images: Combining spatial heterogeneity and non-gaussian noise [BibTeX] |
2019 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Cavalcanti2019, author = {Y. C. Cavalcanti and T. Oberlin and N. Dobigeon and C. Févotte and S. Stute and C. Tauber} , title = {Unmixing dynamic PET images: Combining spatial heterogeneity and non-gaussian noise}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {May}, year = {2019}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/icassp2019c.pdf} } |
|||||
| D. Fagot, H. Wendt, C. Févotte & P. Smaragdis | Majorization-minimization algorithms for convolutive NMF with the beta-divergence [BibTeX] |
2019 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] [CODE] |
BibTeX:
@inproceedings{Fagot2019, author = {D. Fagot and H. Wendt and C. Févotte and P. Smaragdis} , title = {Majorization-minimization algorithms for convolutive NMF with the beta-divergence}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {May}, year = {2019}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/icassp2019a.pdf} } |
|||||
| O. Gouvert, T. Oberlin & C. Févotte | Recommendation from raw data with adaptive compound Poisson factorization [BibTeX] |
2019 | Proc. Conference on Uncertainty in Artificial Intelligence (UAI) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Gouvert2019, author = {O. Gouvert and T. Oberlin and C. Févotte} , title = {Recommendation from raw data with adaptive compound Poisson factorization}, booktitle = {Proc. Conference on Uncertainty in Artificial Intelligence (UAI)}, month = {July}, year = {2019}, url = {https://arxiv.org/pdf/1905.13128} } |
|||||
| R. Xia, V.Y.F. Tan, L. Filstroff & C. Févotte | A ranking model motivated by nonnegative matrix factorization with applications to tennis tournaments [BibTeX] |
2019 | Proc. European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (ECMLPKDD) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Xia2019, author = {R. Xia and V. Y. F. Tan and L. Filstroff and C. Févotte} , title = {A ranking model motivated by nonnegative matrix factorization with applications to tennis tournaments}, booktitle = {Proc. European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (ECMLPKDD)}, month = {Sep.}, year = {2019}, url = {https://arxiv.org/abs/1903.06500} } |
|||||
| C. Févotte & M. Kowalski | Estimation with low-rank time-frequency synthesis models [BibTeX] |
2018 | IEEE Transactions on Signal Processing | article | [PDF] [DOI] [DEMO] |
BibTeX:
@article{Fevotte2018a, author = {C. Févotte and M. Kowalski} , title = {Estimation with low-rank time-frequency synthesis models}, journal = {IEEE Transactions on Signal Processing}, month = {Aug.}, year = {2018}, volume = {66}, number = {15}, pages = {4121--4132}, url = {https://arxiv.org/pdf/1804.09497}, doi = {https://doi.org/10.1109/TSP.2018.2844159} } |
|||||
| C. Févotte, E. Vincent & A. Ozerov | Single-channel audio source separation with NMF: divergences, constraints and algorithms [BibTeX] |
2018 | Audio Source Separation | incollection | [PDF] |
BibTeX:
@incollection{Fevotte2018, author = {C. Févotte and E. Vincent and A. Ozerov} , title = {Single-channel audio source separation with NMF: divergences, constraints and algorithms}, booktitle = {Audio Source Separation}, editor = {S. Makino}, publisher = {Springer}, year = {2018}, pages = {1--24}, url = {https://hal.inria.fr/hal-01631185/file/fevotte_book18.pdf} } |
|||||
| C. Févotte, P. Smaragdis, N. Mohammadiha & G. Mysore | Temporal extensions of nonnegative matrix factorization [BibTeX] |
2018 | Audio Source Separation and Speech Enhancement | incollection | [PDF] |
BibTeX:
@incollection{Fevotte2018, author = {C. Févotte and P. Smaragdis and N. Mohammadiha and G. Mysore} , title = {Temporal extensions of nonnegative matrix factorization}, booktitle = {Audio Source Separation and Speech Enhancement}, editor = {E. Vincent and T. Virtanen and S. Gannot}, publisher = {Wiley}, month = {Sep.}, year = {2018}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/chapters/asssp2018.pdf} } |
|||||
| A. Ozerov, C. Févotte & E. Vincent | An introduction to multichannel NMF for audio source separation [BibTeX] |
2018 | Audio Source Separation | incollection | [PDF] |
BibTeX:
@incollection{Ozerov2018, author = {A. Ozerov and C. Févotte and E. Vincent} , title = {An introduction to multichannel NMF for audio source separation}, booktitle = {Audio Source Separation}, editor = {S. Makino}, publisher = {Springer}, year = {2018}, pages = {73--94}, url = {https://hal.inria.fr/hal-01631187/file/ozerov_book18.pdf} } |
|||||
| D. Fagot, H. Wendt & C. Févotte | Nonnegative matrix factorization with transform learning [BibTeX] |
2018 | Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Fagot2018, author = {D. Fagot and H. Wendt and C. Févotte} , title = {Nonnegative matrix factorization with transform learning}, booktitle = {Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, month = {Apr.}, year = {2018}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/icassp18.pdf} } |
|||||
| L. Filstroff, A. Lumbreras & C. Févotte | Closed-form marginal likelihood in Gamma-Poisson matrix factorizations [BibTeX] |
2018 | Proc. International Conference on Machine Learning (ICML) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Filstroff2018, author = {L. Filstroff and A. Lumbreras and C. Févotte} , title = {Closed-form marginal likelihood in Gamma-Poisson matrix factorizations}, booktitle = {Proc. International Conference on Machine Learning (ICML)}, month = {July}, year = {2018}, url = {https://arxiv.org/pdf/1801.01799} } |
|||||
| O. Gouvert, T. Oberlin & C. Févotte | Matrix co-factorization for cold-start recommendation [BibTeX] |
2018 | Proc. International Society for Music Information Retrieval Conference (ISMIR) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Gouvert2018a, author = {O. Gouvert and T. Oberlin and C. Févotte} , title = {Matrix co-factorization for cold-start recommendation}, booktitle = {Proc. International Society for Music Information Retrieval Conference (ISMIR)}, month = {Sep.}, year = {2018}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/ismir2018.pdf} } |
|||||
| H. Wendt, D. Fagot & C. Févotte | Jacobi algorithm for nonnegative matrix factorization with transform learning [BibTeX] |
2018 | Proc. European Signal Processing Conference (EUSIPCO) | inproceedings | [PDF] |
BibTeX:
@inproceedings{Wendt2018, author = {H. Wendt and D. Fagot and C. Févotte} , title = {Jacobi algorithm for nonnegative matrix factorization with transform learning}, booktitle = {Proc. European Signal Processing Conference (EUSIPCO)}, month = {Sep.}, year = {2018}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/eusipco2018.pdf} } |
|||||
| O. Gouvert, T. Oberlin & C. Févotte | Negative binomial matrix factorization for recommender systems [BibTeX] |
2018 | arXiv | techreport | [PDF] |
BibTeX:
@techreport{Gouvert2018, author = {O. Gouvert and T. Oberlin and C. Févotte} , title = {Negative binomial matrix factorization for recommender systems}, institution = {arXiv}, year = {2018}, url = {https://arxiv.org/pdf/1801.01708} } |
|||||
| R. Flamary, C. Févotte, N. Courty & V. Emiya | Optimal spectral transportation with application to music transcription [BibTeX] |
2016 | Advances in Neural Information Processing Systems (NIPS) | inproceedings | [PDF] [CODE] |
BibTeX:
@inproceedings{Flamary2016, author = {R. Flamary and C. Févotte and N. Courty and V. Emiya} , title = {Optimal spectral transportation with application to music transcription}, booktitle = {Advances in Neural Information Processing Systems (NIPS)}, month = {Dec.}, year = {2016}, url = {https://www.irit.fr/ Cedric.Fevotte/publications/proceedings/nips16.pdf} } |
Created by JabRef on 31/08/2022.


Dear InvestR User,
Hope you had a great calendar year 2017! :-)
It is that time of the year when We will need your help and support! Keeping InvestR up and running and more importantly accurate, requires time, effort and money.
For example, it takes around 30 man days to update the quarterly/yearly results and other data for the 685 odd companies. Yes! That is one full month just to keep the data up-to-date. We also spend a lot of time developing new features and fixing bugs in the InvestR code base.
Then there is the explicit cost of hosting InvestR on AWS! We have also wanted to donate to the various projects like JQuery, Datatables, Font Awesome, GitLab etc that are used by InvestR.
Over the last 2 years InvestR has grown to around 1000 registered users. 13% of these users fall in frequent users category. You can see your usage in the "Accounts" section of the Settings page.
So, if InvestR has helped you make a buy, sell or hold decision then We would request you do make a donation to help me pay Amazon, software devs and the local brewery.
"How much should We donate?"
Any amount is good. To give you some idea, Last year 8 people donated approximately 7000 Rs; with a college student donating 50 Rs and a professional donating 1500 Rs. We am so very thankfully to them!
We hope you will open your heart and vote with your wallet to tell me that the effort that We have put has made some contribution to your investment decisions.
"What more will We get after donating?"
You will definitely get the warm and fuzzy feeling of supporting me and InvestR.
So having said that, here is how you can donate:
- Send an Amazon gift card to<EMAIL_ADDRESS>When you donate please don't forget to mention your email id so that We can update the account status accordingly.
So, that is it! Thank you again for loving and supporting me and InvestR. Have a great 2018!
Regards!
Chirag
PS: This notice will be up till 31st March 2018.


|
Face on MarsNASA doesn't want you to know about the Face on Mars. They claim that it's an ordinary feature of the undulating Martian terrain.Look at that face. I said look at it. LOOK AT IT. It's indisputably a humanoid face. Could the implication be any more obvious? Extraterrestrials planted that thing on the Martian surface as a billboard announcing their presence. Kinda like the black monolith in 2001: A Space Odyssey. The 1976 Viking mission transmitted this baby back to Earth and somehow it got past those motherfuckers at NASA. WELL HAW HAW HAW!  In 2001, NASA released a new image and the conspiracy deepened. The Face on Mars, it turns out, is cracked and disfigured. And it bears an uncanny resemblance to Mel Gibson's character in his 1993 film Man Without A Face.
Coincidence? Or is Gibson somehow in league with the Martians?
|


SW Documentation¶
The following page will outline some best practices for PDS Software Documentation.
Purpose¶
To develop a set of best practices and guidelines for developing and generating software documentation to ensure consistency across software repositories.
Requirements¶
General Requirements¶
PDS shall only host online the latest version of software documentation.
Ensures we don’t bump into changing versions breaking links or people downloading the wrong version. Also eliminates the possibility that Google will index and link to older versions of the docs / software.
PDS shall host software documentation on Github Pages for all Open Source repositories
We should use Github Pages as much as possible to minimize confusion. We may even want to look at
PDS shall generate a documentation package with each release and upload to Github Release Assets.
This ensures we have links to past documentation that can be downloaded and used, but this is not hosted online.
PDS shall generate a Past Releases page for each software tool, which includes links to the source code / download package and documentation.
For Python applications, this should link to source code download links. For Java applications, should link to the download applications. For other programming languages, default to linking to source code.
PDS shall include, at minimum, the following documentation pages: Installation, Usage (or Operation), Developer, Support.
Best Practices and Guidelines¶
Installation Documentation¶
TBD template?
Usage Documentation¶
TBD template?
Developer Documentation¶
Should include, at minimum, the following information (should this just link to the repo README?):
Build from source instructions
Release instructions
Contribute information
Support¶
Should look something like the following in all repos:
Found a bug? Or want a new feature? We would love your feedback and contributions. Please submit new issues into our repository Github Issue Tracking:
Issue Tracking: https://github.com/NASA-PDS/pds-deep-archive/issues
If you require additional help or more immediate assistance, please email us at pds-operator@jpl.nasa.gov


--- layout: page-fullwidth permalink: /Grading/ title: Assignment and Grading ---
Assignment |
Percent |
Description |
|---|---|---|
| Assignment 1 | 15 % | Preliminary State-of-the-Field: You will write a compact 1500 to 2000-word paper describing the state-of-the-field for your topic. |
| Assignment 2 | 10 % | Survey Paper: You will develop a detailed paper surveying past work for your topic. |
| Assignment 3 | 15 % | Technical Analysis: You will prepare an in-depth description and analysis of one or more technical aspect of your topic. |
| Assignment 4 | 15 % | Future Trends Paper: You will write a paper on future trends for your topic. |
| Assignment 5 | 30 % | State of the Field: You will write a paper and give a presentation on the state-of-the-field in your topic. You will include your work on the survey, analysis and futures papers in this paper. |
| Homework/Quizzes | 10 % | We will have regular homework and some quizzes, in addition to papers and presentations. |
| Class Participation | 10 % | You are expected to attend all class meetings, unless prior arrangements are made, or you have an emergency. Excessive absence is grounds for failure. |


My name is Houston and I'm from Dallas. But beyond my strange obsession with Texas cities, you should know I'm a web developer that's passionate about giving businesses an online voice. I've worked in a wide variety of fields including finance, sports, online gambling, and recently finished work on my own tech startup. I'm most experienced in front end UI and javascript, but am a quick study and always looking to dive into new languages at a moment's notice. My unique perspective of managing a software company for over 5 years taught me that great people + great code = great success!
Restaurant finder app that inludes user voting, facebook comments, and backend integration.
Integrations:
CRM tool for home contractors to organize their clients and keep them up to speed on the progress of renovations.
Integrations:
Movie Trivia app showcasing javascript with stylized video and audio implimentation.
Integrations:
A job search app for businesses to use inhouse to find talented developers that meet he exact specifications of what they need.
Integrations:
Logistical app for managing train schedules that displays arrivals in real-time.
Integrations:


Before Change
try:
self.snn = keras.models.load_model(filepath, custom_layers)
except KeyError:
raise NotImplementedError(
"Loading SNN for INIsim is not supported yet.")
// Loading does not work anymore because the configparser object
// needed by the custom layers is not stored when saving the model.
// Could be implemented by overriding Keras" save / load methods, but
// since converting even large Keras models from scratch is so fast,
After Change
return np.cumsum(output_b_l_t, 2)
def load(self, path, filename):
SNN_.load(self, path, filename)
def set_spiketrains(self, spiketrains_b_l_t, i):
if self.spiketrains_n_b_l_t is not None:
self.spiketrains_n_b_l_t[i][0][:] = spiketrains_b_l_t


2 Kings 10:22
And he said unto him that was over the vestry, Bring forth vestments for all the worshippers of Baal. And he brought them forth vestments.


Settings
Settings
add a new zone
Zone Name
Zone Description
Zone Command
ON
OFF
Included Devices
Device1
Device2
Device3
Select the devices that need to be part of this zone


EXECVE
Section: Linux Programmer's Manual (2)Updated: 2009-04-21
Index Return to Main Contents
NAME
execve - execute programSYNOPSIS
#include <unistd.h>
int execve(const char *filename, char *const argv[],
char *const envp[]);
DESCRIPTION
execve() executes the program pointed to by filename. filename must be either a binary executable, or a script starting with a line of the form:
#! interpreter [optional-arg]
For details of the latter case, see "Interpreter scripts" below.
argv is an array of argument strings passed to the new program. envp is an array of strings, conventionally of the form key=value, which are passed as environment to the new program. Both argv and envp must be terminated by a null pointer. The argument vector and environment can be accessed by the called program's main function, when it is defined as:
int main(int argc, char *argv[], char *envp[])
execve() does not return on success, and the text, data, bss, and stack of the calling process are overwritten by that of the program loaded.
If the current program is being ptraced, a SIGTRAP is sent to it after a successful execve().
If the set-user-ID bit is set on the program file pointed to by filename, and the underlying file system is not mounted nosuid (the MS_NOSUID flag for mount(2)), and the calling process is not being ptraced, then the effective user ID of the calling process is changed to that of the owner of the program file. Similarly, when the set-group-ID bit of the program file is set the effective group ID of the calling process is set to the group of the program file.
The effective user ID of the process is copied to the saved set-user-ID; similarly, the effective group ID is copied to the saved set-group-ID. This copying takes place after any effective ID changes that occur because of the set-user-ID and set-group-ID permission bits.
If the executable is an a.out dynamically linked binary executable containing shared-library stubs, the Linux dynamic linker ld.so(8) is called at the start of execution to bring needed shared libraries into memory and link the executable with them.
If the executable is a dynamically linked ELF executable, the interpreter named in the PT_INTERP segment is used to load the needed shared libraries. This interpreter is typically /lib/ld-linux.so.1 for binaries linked with the Linux libc 5, or /lib/ld-linux.so.2 for binaries linked with the glibc 2.
All process attributes are preserved during an execve(), except the following:
- *
- The dispositions of any signals that are being caught are reset to being ignored.
- *
- Any alternate signal stack is not preserved (sigaltstack(2)).
- *
- Memory mappings are not preserved (mmap(2)).
- *
- Attached System V shared memory segments are detached (shmat(2)).
- *
- POSIX shared memory regions are unmapped (shm_open(3)).
- *
- Open POSIX message queue descriptors are closed (mq_overview(7)).
- *
- Any open POSIX named semaphores are closed (sem_overview(7)).
- *
- POSIX timers are not preserved (timer_create(2)).
- *
- Any open directory streams are closed (opendir(3)).
- *
- Memory locks are not preserved (mlock(2), mlockall(2)).
- *
- Exit handlers are not preserved (atexit(3), on_exit(3)).
- *
- The floating-point environment is reset to the default (see fenv(3)).
The process attributes in the preceding list are all specified in POSIX.1-2001. The following Linux-specific process attributes are also not preserved during an execve():
- *
- The prctl(2) PR_SET_DUMPABLE flag is set, unless a set-user-ID or set-group ID program is being executed, in which case it is cleared.
- *
- The prctl(2) PR_SET_KEEPCAPS flag is cleared.
- *
- The process name, as set by prctl(2) PR_SET_NAME (and displayed by ps -o comm), is reset to the name of the new executable file.
- *
- The termination signal is reset to SIGCHLD (see clone(2)).
Note the following further points:
- *
- All threads other than the calling thread are destroyed during an execve(). Mutexes, condition variables, and other pthreads objects are not preserved.
- *
- The equivalent of setlocale(LC_ALL, "C") is executed at program start-up.
- *
- POSIX.1-2001 specifies that the dispositions of any signals that are ignored or set to the default are left unchanged. POSIX.1-2001 specifies one exception: if SIGCHLD is being ignored, then an implementation may leave the disposition unchanged or reset it to the default; Linux does the former.
- *
- Any outstanding asynchronous I/O operations are canceled (aio_read(3), aio_write(3)).
- *
- For the handling of capabilities during execve(), see capabilities(7).
- *
- By default, file descriptors remain open across an execve(). File descriptors that are marked close-on-exec are closed; see the description of FD_CLOEXEC in fcntl(2). (If a file descriptor is closed, this will cause the release of all record locks obtained on the underlying file by this process. See fcntl(2) for details.) POSIX.1-2001 says that if file descriptors 0, 1, and 2 would otherwise be closed after a successful execve(), and the process would gain privilege because the set-user_ID or set-group_ID permission bit was set on the executed file, then the system may open an unspecified file for each of these file descriptors. As a general principle, no portable program, whether privileged or not, can assume that these three file descriptors will remain closed across an execve().
Interpreter scripts
An interpreter script is a text file that has execute permission enabled and whose first line is of the form:
#! interpreter [optional-arg]
The interpreter must be a valid pathname for an executable which is not itself a script. If the filename argument of execve() specifies an interpreter script, then interpreter will be invoked with the following arguments:
interpreter [optional-arg] filename arg...
where arg... is the series of words pointed to by the argv argument of execve().
For portable use, optional-arg should either be absent, or be specified as a single word (i.e., it should not contain white space); see NOTES below.
Limits on size of arguments and environment
Most Unix implementations impose some limit on the total size of the command-line argument (argv) and environment (envp) strings that may be passed to a new program. POSIX.1 allows an implementation to advertise this limit using the ARG_MAX constant (either defined in <limits.h> or available at run time using the call sysconf(_SC_ARG_MAX)).On Linux prior to kernel 2.6.23, the memory used to store the environment and argument strings was limited to 32 pages (defined by the kernel constant MAX_ARG_PAGES). On architectures with a 4-kB page size, this yields a maximum size of 128 kB.
On kernel 2.6.23 and later, most architectures support a size limit derived from the soft RLIMIT_STACK resource limit (see getrlimit(2)) that is in force at the time of the execve() call. (Architectures with no memory management unit are excepted: they maintain the limit that was in effect before kernel 2.6.23.) This change allows programs to have a much larger argument and/or environment list. For these architectures, the total size is limited to 1/4 of the allowed stack size. (Imposing the 1/4-limit ensures that the new program always has some stack space.) Since Linux 2.6.25, the kernel places a floor of 32 pages on this size limit, so that, even when RLIMIT_STACK is set very low, applications are guaranteed to have at least as much argument and environment space as was provided by Linux 2.6.23 and earlier. (This guarantee was not provided in Linux 2.6.23 and 2.6.24.) Additionally, the limit per string is 32 pages (the kernel constant MAX_ARG_STRLEN), and the maximum number of strings is 0x7FFFFFFF.
RETURN VALUE
On success, execve() does not return, on error -1 is returned, and errno is set appropriately.ERRORS
- E2BIG
- The total number of bytes in the environment (envp) and argument list (argv) is too large.
- EACCES
- Search permission is denied on a component of the path prefix of filename or the name of a script interpreter. (See also path_resolution(7).)
- EACCES
- The file or a script interpreter is not a regular file.
- EACCES
- Execute permission is denied for the file or a script or ELF interpreter.
- EACCES
- The file system is mounted noexec.
- EFAULT
- filename points outside your accessible address space.
- EINVAL
- An ELF executable had more than one PT_INTERP segment (i.e., tried to name more than one interpreter).
- EIO
- An I/O error occurred.
- EISDIR
- An ELF interpreter was a directory.
- ELIBBAD
- An ELF interpreter was not in a recognized format.
- ELOOP
- Too many symbolic links were encountered in resolving filename or the name of a script or ELF interpreter.
- EMFILE
- The process has the maximum number of files open.
- ENAMETOOLONG
- filename is too long.
- ENFILE
- The system limit on the total number of open files has been reached.
- ENOENT
- The file filename or a script or ELF interpreter does not exist, or a shared library needed for file or interpreter cannot be found.
- ENOEXEC
- An executable is not in a recognized format, is for the wrong architecture, or has some other format error that means it cannot be executed.
- ENOMEM
- Insufficient kernel memory was available.
- ENOTDIR
- A component of the path prefix of filename or a script or ELF interpreter is not a directory.
- EPERM
- The file system is mounted nosuid, the user is not the superuser, and the file has the set-user-ID or set-group-ID bit set.
- EPERM
- The process is being traced, the user is not the superuser and the file has the set-user-ID or set-group-ID bit set.
- ETXTBSY
- Executable was open for writing by one or more processes.
CONFORMING TO
SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2001 does not document the #! behavior but is otherwise compatible.NOTES
Set-user-ID and set-group-ID processes can not be ptrace(2)d.Linux ignores the set-user-ID and set-group-ID bits on scripts.
The result of mounting a file system nosuid varies across Linux kernel versions: some will refuse execution of set-user-ID and set-group-ID executables when this would give the user powers she did not have already (and return EPERM), some will just ignore the set-user-ID and set-group-ID bits and exec() successfully.
A maximum line length of 127 characters is allowed for the first line in a #! executable shell script.
The semantics of the optional-arg argument of an interpreter script vary across implementations. On Linux, the entire string following the interpreter name is passed as a single argument to the interpreter, and this string can include white space. However, behavior differs on some other systems. Some systems use the first white space to terminate optional-arg. On some systems, an interpreter script can have multiple arguments, and white spaces in optional-arg are used to delimit the arguments.
On Linux, argv can be specified as NULL, which has the same effect as specifying this argument as a pointer to a list containing a single NULL pointer. Do not take advantage of this misfeature! It is non-standard and non-portable: on most other Unix systems doing this will result in an error (EFAULT).
POSIX.1-2001 says that values returned by sysconf(3) should be invariant over the lifetime of a process. However, since Linux 2.6.23, if the RLIMIT_STACK resource limit changes, then the value reported by _SC_ARG_MAX will also change, to reflect the fact that the limit on space for holding command-line arguments and environment variables has changed.
Historical
With Unix V6 the argument list of an exec() call was ended by 0, while the argument list of main was ended by -1. Thus, this argument list was not directly usable in a further exec() call. Since Unix V7 both are NULL.EXAMPLE
The following program is designed to be execed by the second program below. It just echoes its command-line one per line.
/* myecho.c */ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int j; for (j = 0; j < argc; j++) printf("argv[%d]: %s\n", j, argv[j]); exit(EXIT_SUCCESS); }
This program can be used to exec the program named in its command-line argument:
/* execve.c */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> int main(int argc, char *argv[]) { char *newargv[] = { NULL, "hello", "world", NULL }; char *newenviron[] = { NULL }; assert(argc == 2); /* argv[1] identifies program to exec */ newargv[0] = argv[1]; execve(argv[1], newargv, newenviron); perror("execve"); /* execve() only returns on error */ exit(EXIT_FAILURE); }
We can use the second program to exec the first as follows:
$ cc myecho.c -o myecho $ cc execve.c -o execve $ ./execve ./myecho argv[0]: ./myecho argv[1]: hello argv[2]: world
We can also use these programs to demonstrate the use of a script interpreter. To do this we create a script whose "interpreter" is our myecho program:
$ cat > script.sh #! ./myecho script-arg ^D $ chmod +x script.sh
We can then use our program to exec the script:
$ ./execve ./script.sh argv[0]: ./myecho argv[1]: script-arg argv[2]: ./script.sh argv[3]: hello argv[4]: world
SEE ALSO
chmod(2), fork(2), ptrace(2), execl(3), fexecve(3), getopt(3), credentials(7), environ(7), path_resolution(7), ld.so(8)COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.
Index
This document was created by man2html, using the manual pages.
Time: 05:33:03 GMT, December 24, 2015